Because the permissions to control the database are handled by the database, which isn't really related to the unix file systems permissions.
Fer instance, in Postgresql, there's usually an accout named postgres that runs the database and owns all the files underneath it. when you insert a row, the postgresql database checks to make sure you are you, then writes that data to the database as your data. But the file it writes it to belongs to the postgres user, not you. In order to get it back, postgresql has to again check who you are and decide if you have permission to read the data. If so, then IT reads the data from it's own db files, and then delivers it to you.
The point you make about hosting companies is QUITE valid. They are not interchangable, and if they can't figure out how to configure apache to run wtih su-exec support on user directories, then they really don't deserve your money as a host.
For larger sites this can be overcome by having your hosting provider set up a single machine, just for you, and giving you the root password to that box. Costs more since you aren't sharing it with other people, but guarantees that some kid running a pr0n site won't kill your site with overload either.