Often it's not even the cheap hardware, but just really shitty drivers (frequently pre-installed by OEMs). Do a clean install of Windows and be careful about the source of your drivers, and you can go years without a crash on Windows (on a heavily used gaming box, no less). I know, I've done it.
I honestly didn't understand why most people hated Vista so much (I mean, it had bugs, but they weren't *that* bad; it used a lot of RAM, but I was running it on 1280 MB and it was all right) until I tried an OEM image of it. Took 3x as long to boot to a usable state (despite having about the same specs), was noticeably laggier, had less free memory, and crashed in under an hour of use (I'd been running the RC2 build - not even release - for months without a crash). That kind of problem with shitty OEM builds is, unfortunately, a problem in the PC world. Apple takes care to avoid it (though their own Windows drivers also tend to be shit.)
Bringing this back to phones, the same problem applies there. An awful lot of Android OEMs take a fairly good OS - the stock Android platform - and then run it on hardware with bad firmware (which, sadly, is usually not user-fixable), bad drivers, and (often buggy) bloatware. The result is... not pretty. The OEMs don't really have anybody to blame but themselves, but the users keep buying it so as far as the OEMs are concerned, they're doing the right thing.