There's an analogous situation with Android phones; Google doesn't try to upgrade every phone to the newest release, because they can't guarantee it will work afterwards.
I'd still blame the OEMs, of course, when the hardware stops working after installing from a retail Windows 10 disc. But in that case it was from a user-initiated action, at least.
>it should check that drivers are available for the hardware before trying to go through with the upgrade
From what I've gathered the issue tends to be with drivers not working, rather than not existing. This is again entirely the OEMs fault, there isn't any feasible way for MSFT to verify that the drivers aren't broken.
These OEMs knew very well that microsoft was going to do this but still neglected to fix their drivers.
We don't blame microsoft for superfish either, do we? Or hard drive failures?