The active record pattern, where you have objects like RoR's ActiveRecord or Django's Model that directly wrap a row in a table in a database, has a nasty hidden trap that rears its head once your app is complex enough.
By tightly coupling your database backend to your application models, it all but guarantees you can't switch to another database without a major rewrite of your application.
This is probably why you don't see companies switching databases. They can't.