That has nothing to do with what I said. If you want to avoid the peak memory overhead of using a GC (and the peak memory overhead is quite a bit higher if you don't want to kill performance -- you'd need to run the GC after every statement that could possibly kill garbage otherwise), you need to use C or C++.
And as for other mobile platforms -- Windows Mobile allows C++, IPhone is in Objective-C, Symbian is C++, etc. Java is popular, but it's not overwhelmingly so. And this is even taking into account that it's easier to get a Java based device approved by carriers/regulators because the VM can trap more attempts to break the OS and thus make sure that you can't trick the software into doing out-of-spec stuff.
GC is a wonderful tool. it prevents leaks, but it needs more memory when you're rapidly generating garbage. I wouldn't want to program without it... unless I'm trying to shoehorn things onto a tiny system.
>There are some things C or C++ are just better at, like operating in a low-memory environment when you want to squeeze as much as possible out of the system.
No, that depends on the developer. A lot of developers don't want to worry about memory management and memory leaks.
The thing is that they need a VM-based language so they can port the VM over to all sorts of hardware instead of forcing developers to mess around with portability issues. Port of Squeak Smalltalk to the iPhone: http://isqueak.org/HomePage