You're not opening the popup, you're just creating it, try obtaining the result of L.popup()
:
var popup = L.popup().setContent('<p>Hello world!<br />This is a nice popup.</p>');
This creates a popup then you need to make it open on a right click, the second argument to 'on' only accepts a function, that will run with the first parameter being the event. In other words, the function can't end in parentheses. It's usually easier to just wrap what you want to do in an anonymous function as shown bellow:
map.on('contextmenu',function(){
popup.openOn(map);
});
You could also do
map.openPopup(popup);
either is equivalent. make sure to avoid bindPopup because that assumes you want to use regular left clicks.
Edit: so to make it look more menu like you need to use a library to create a popup menu like one of these
map.on('contextmenu',function(e){
plugin run!
});