The problem with Gingerbread is that it's good enough for a majority of users, including me.
When I upgraded from Gingerbread to Jelly, I liked the improvements a lot, but it wasn't enough to justify the decreased battery life. Granted I'm talking about a Galaxy S, with Jelly coming from Cyanogenmod, which is known to have battery issues because of shitty drivers.
So I'm just waiting for a phone upgrade when my contract expires. My next phone is going to be a Nexus, because that's the only phone guaranteed to receive supported upgrades for major versions. On the other hand, my Gingerbread has served me extremely well, which is why I don't really feel the need to upgrade, otherwise I would have done it already.
All users are going to upgrade to Jelly or higher eventually, because contracts expire and batteries die.