Credit:
Zac Bowling does a nice little overview of all the things that are wrong with iPhone's SDK. In a nutshell, the rules imposed on developers are way too strict; abiding all of them would mean that pretty much any interesting or groundbreaking application is out of the question.
Things like "apps can't run in the background" and "no full file system access" sting the most; all in all, there's a lot of stop signs all over and developers won't be too happy about it.