Because open-source can only do some things. It took an Ubuntu to make Linux somewhat usable, and even then it is miles behind an OS X. Some endeavors can only be done when there is lots of money at stake, that's a reality of our world today.
PERHAPS you can argue given a boring problem (e.g. Linux usability for grandma) and getting people to work on it takes money. But that is contingent on the arrangement of society, it isn't a universal principle or anything.
As for Ubuntu -- um, as a newly converted FreeBSD user, I think there appeared a free usable system a long time ago...