Well, for one...the iPhone was released long ago, therefore had plenty of time to accumulate applications.
Two, the iPhone has a great SDK to develop on. RIM's SDK kinda sucks and RIM is just now beginning to realize they need to open up a bit more to developers in order to get more applications created.
Also, profit margins for developers. If you are constantly looking for "Free" applications but never giving those that come at a cost a chance as well, what's the incentive for developers to give away their work?..If a free app comes out, check if the dev has a paid app you may enjoy as well and buy it..support works both ways.