Note: This is really just my opinion based on experience and research, but I don't have any scientific facts readily available to back up my post.
There are a number of reasons why one would want to embed an interpreter into a compiled application (but that's not what you asked and is the subject of another discussion).
- The interpreter (AFAIK) is the smallest one out of the bunch
- The simplicity of the language: Lua employs a lot less rules than the other mentioned languages and is therefore easier to pick up and hack something out with. You don't necessarily need to be an engineer to write Lua.
One of the things that I looked at when looking at embedding a scripting language into my own spare-time projects had to do with the second point: I just wanted to get stuff done, so spending a lot of time learning another language wasn't high on my priority list (Lua seemed great for that).
There are also a few debuggers available (such as Decoda), which help Lua stand out from the pack a little.
As a side note, Havok Script is a commercial Lua-compatible VM, so that may have helped the popularity a bit as well.
Having said all that, I'm sure that the fact that Blizzard has used Lua so successfully in WoW hasn't hurt the popularity at all ;)