It's not that these OEM's don't want to, but the carriers have final say over when Android updates are released. Apple doesn't face this because the one thing Apple did right was to retain control over when iOS updates are released. Google needs to push back against the carriers and stand up for their OEM partners.
An carriers also have a say when updates are launched on SIM unlocked phones? No, they don't! Yet the problem remains.
And in comparison to subsidized phones through the carriers, there really is not many of them out there. You will always have slow development for any product where there is not many of said product.
Now it can be argued as well that perhaps each OEM has way to many phones. Apple has one phone, the iPhone, yet are continually bashed for bringing out a new one about once a year. But look at Motorola. They released the Bionic, then a couple months later, the Razr, then a couple of months later the Razr Maxx, then the Razr HD, the Razr M. If each OEM concentrated on one, maybe 2, models, that could also help the update issue, but still, not much when you have carriers forcing them to do 10 version of each update to make sure the bloatware is all in there.