Google releases the OS'es. It's the carriers who (usually) don't provide full support for the releases. Reasons for this are:
1. It's a support burden on the carrier: version rollouts are often accompanied by annoyed support calls of stuff new version "broke" (be it true or not)
2. It interferes with sales of newer handsets which already have that version targeted
3. Carriers like to "customize" (i.e. remove) features that Google cavalierly stuffs into its OS. Being a consumer, I like that Google does this.
Clearly there's no getting around that 2 and 3 are annoying to power users. On one hand the iOS upgrades are smooth and natural, but on the other, who knows what features Apple is excluding because of its partnership with AT&T...
Most phones themselves are not OS restricted. Have a visit to http
/forum.xda-developers.com/ to see about getting the newest OS onto your phone.