I think the reason is that mobile non-Android Linux has never been backed by a company who totally relied on it and was investing as much money as Google+partners and Apple probably did.
IIRC the only phone maker backing it was Nokia, but their attention was mostly towards Symbian.
Also, writing everything but the kernel from scratch yourself like Google and Apple did probably gives a better result than adapting existing components, as long as you have a huge budget allowing you to hire as many people as needed.
And finally there's the fact that Google decided to write the Android userland instead of going with GNOME/KDE, which is probably because they thought that Java was a much better language than C/C++ for desktop development, because they thought that designing specifically for mobile would give huge benefits.
Given Android1s success, Google's decisions were probably right, so it's not clear why doing differently would work now.