There are tons of languages that support all platforms. JavaScript/HTML ( web and native with third part apps ), Flash, HaXe, LUA, or of course applications like Construct2 or GameMaker.
Flash player for Linux has no 3D support.
Not a single HaXe output runs on raspberry pi, pandora, 90% of UNIX OSes.
LUA needs an interpreter... The reference (and fastest) is for C and this ultimately means that you are going to be using C or C++. If you don't use C/C++, then you are restricted by the limitations of whatever platform / language you have chosen and you are back to square one!
Javascript / HTML needs a pretty new web browser but a large issue is that 3D (via webGL) isnt supported on iOS for mainstream users yet.
Construct 2 or GameMaker... yeah right. These have no support for Linux.
Who the heck would waste their time with any of the above? Doesn't make sense.
The big downside to C++ on iOS is, well, XCode support for C++ stinks. I would go far as to say XCode stinks, but some people seem to like it for reasons I can't quite fathom.
When porting my game from any other platform to iOS... I dont touch Xcode. This is no argument against C++. An IDE for the Mac means very little to a developer when they don't use a Mac for development lol.