Python and Ruby largely continue the class-based object oriented model and are thus easy to pick up if you come from a C++/Java background. While JavaScript is prototype-based, and thus somewhat exotic, it at least maintains the syntactic heritage of C/C++, so it's not as scary as it otherwise might be for beginners. Plus most in the web development background have already known the language for years.
Perhaps the reason Lua isn't gaining ground in the web scene is because it's too exotic, however fair that might be. It has a foreign object model and a different syntax. Both of these combined might create the perception that it's difficult to learn.
I'm not sure though. For me, I've always been interested in Lua, but I've never picked it up because I never see any web apps made with it.