Well one reason is that manufacturers stop supporting products, so people feel the need to upgrade. I have a Nexus 5, which is a lovely phone, not that old, yet it will not get the next release of Android (N).
But I hardly ever buy a newly released device at launch. I'll wait a few months until the price has come way down, and the bugs are ironed out of the software.