Portability and standards are difficult things to build, and they cost resources to develop, like anything else. Users don't understand the need for them and would happily jump in IE6, Windows, iPads or a similar 'ecosystems' until something bad happens and they see the open light (Firefox/Linux/Android). But sometimes no alternative exists (open systems are harder to monetize, and with fewer resources, they take longer to be built). So we're left with a lot of ecosystems where things just work and nothing 'bad' happened yet.
It's a difficult issue and I don't see it going away by itself anytime soon.