Don't know what the reason is. My Google calendars colors are set at Google...I've got them setup as CalDav on the iPhone and the colors come down from Google. That's a important thing for me. Exchange calendars on iPhone seem to pick whatever color they feel like.
The subscribed, read-only, calendars I have on my iPhone are the only ones I can change the colors.
There was a Cydia tweak called "Calendar Colors" that would let you change all of your calendars to any color you wanted, but it's not working in iOS 5, yet.