The reasoning is that the iPhone experience would suffer since background applications would easily slow down the phone, eat trough your battery and - worst case scenario - make the entire system unstable and unreliable.
Other smartphones, such as Nokia's Symbian based phones have allowed third party applications to run in the background and my personal experience is that they slow down the phone, eat trough your battery and does make your phone unstable and unrealiable resulting in spontanious reboots several times a day at worst.
But not allowing third party applications to run in the background does limit the usefullness of the iPhone. Instant messaging applications, for example, are not very attractive when you have to keep that application running in the foreground the entire time and if you start another application to do anything else for a while, the IM is shut down and you are logged off and unable to receive any messages.
Apples solution to this problem is "background notification". Apple has created a small application that runs in the background of your iPhone with minimal impact on the processor, memory and battery and this application can receive messages on behalf of any other application that is "background notification compatible". I bought BeejiveIM, an IM that supports all the popular protocols such as Windows Messenger, Gtalk, AIM and so on. Now, even if I don't have BeejiveIM running, if someone sends me a, for example, Windows Messenger message, it is pushed to my phone using Apples background notification system and a small pop up screen on my phone shows me the message and I can press "view" to start BeejiveIM and directly start typing my answer (I can choose how I want to be alerted).
The system is a bit complexed. When I log into my IM accounts using BeejiveIM, I am actually logging in using the BeejiveIM server somewhere - this way, when I close the iPhone application, I am still logged in on the Windows Messenger network from BeejiveIM's server. If someone sends me a message, the BeejiveIM server receives it and and forwards it directly to the BeejiveIM applicatio on my phone if it is running. If the application is not running, the BeejiveIM server sends the message to Apple's server which in turn pushes it trough to that small background application running in my phone and it displays an alert to me.
In other words, if you make your own iPhone applications, an application alone is not enough to make use of background notifications, you need to have your own server infrastructure that is running 24/7 that can forward messages to Apple for further delivery over the push system to individual phones. This is going to separate corporate players from hobbyists in the app market.
Granted, background notifications can not fully compensate for not being able to run software in the background - a GPS route tracker for example does not benefit from this but has to be actively run all the time to work. But many applications can benefit from this solution.
My experience with push notifications is that it lives up to Apple's promises. It has a surpassingly small impact on your battery life and messages appear on your phone within seconds. This is really a great service and it really gives the iPhone yet another technical advantage, a major one, over its rivals. End users might not fully appreciate how great this is - from their point of view things just work the way they expect - but software developers will appreciate it. This means even more effort being put into developing software for the iPhone and that is a loss for all of Apples competitors. Apples competitors simply do not have anything like this to offer their developers and there is no indication that they are even contemplating anything like it.