There are a huge range of reasons. There's no consistency, everything changes every 2 years, the documentation is awful when it exists at all, if software is outside your distro's package repo it's a bitch to install, there are too many different distros, the community is full of pricks, fragmentation is a time-honored pastime, complexity is fetishized... fuck sound still didn't work consistently on the last Linux based media center I built. A cursory search of the internet will turn up innumerable reasons Linux Desktop is bad.
Which isn't to say that MacOS and Windows aren't bad (and getting worse), but they're still a damned sight better.