Yep, JavaScript/web is not a first-class runtime on Android. You must write a Java wrapper application that uses a 3rd party (PhoneGap) framework to get access to most APIs. And IIRC Android web views still use Android Browser, which is terrible.
This "first-class runtime" distinction you mention doesn't really matter much in practice.
In each case there's some variant of Linux, on top of that is a JavaScript and web browser implementation, and on top of that is the application implemented in JavaScript.
The use of something like PhoneGap in the Android case, to package the JavaScript code, markup, styles and to interface with the native browser, is quite peripheral. The majority of end users won't care, as long as the app works.
In the end, the fact remains that developers can use JavaScript to develop apps for Android. But these Android developers also have numerous other options available to them, including Java, C, C++ and C#. This final part is not true for Firefox OS. That inherently means that Android is a much better platform in terms of language support, contrary to what you're suggesting.
Given that the languages that compile to JavaScript include Java, C, C++ and C#, both offers are roughly the same.
Now, on one side, the default language is Java + proprietary APIs. Through the NDK, this can be extended to native stuff and through Cordova/Phonegap, this can be extended to HTML5-ish stuff. On the other side, the default language is JavaScript + portable-but-not-available-everywhere APIs. Through Emscripten, this can be extended to native stuff and through the list I posted earlier, this can be extended to gazillions of languages. While you seem to prefer Java, it really strikes me as roughly equivalent in terms of freedom of choice for the language.
Both platforms are impressively richer than iOS, one defaults to Java, the other to JavaScript, news at 11.
Every Emscripten demo I've seen so far has either not worked, or been horribly slow. As far as I'm concerned, it really isn't a viable option at this point for anything remotely serious. It may be an interesting experimental idea, but it still needs a massive amount of work before it's seriously usable.
In the end, they're merely an abuse of JavaScript, rather than providing proper support like NDK provides for C and C++ under Android, for instance.
Asm.js is still just JavaScript. Emscripten isn't currently production-grade software, and it still just compiles down to JavaScript.
I hope you understand that either of those options is still a case of using JavaScript. Are you seriously disputing that?
We can develop production-grade applications using Java, C, C++, C# and JavaScript for Android. We can only do a very small fraction of that when using Firefox OS. Firefox OS clearly provides far fewer viable options than Android does.
On Android, I can use Java, C, C++, C# (via Xamarin), JavaScript, or the languages that compile down to JavaScript.
Yet somehow Android "is a much worse platform in terms of language choice"?