Linux lacks a grandmother friendly user support interface. When something goes wrong, a person of average familiarity with Linux is fucked. Arguments about how often operating systems present such problems are for another debate.
The issue of hardware, is just that, an issue of hardware. A lack of systems upon which it is easy to boot Linux is due to the fit between hardware manufacturer's and the market. At least the situation is better than Android on an iPhone.