Linux desktop market share estimates: Wikipedia charts

The following summarizes my own opinions after using and programming Linux since 2006:

Fundamental Problems
Linux has some fundamental problems that will endure, because they come from the nature of the beast. These are freedom-loving developers, competing technologies, and poor standardization. These problems hinder technical progress and acceptance, but (amazingly) Linux has become a strong alternative to Windows in spite of this.

Developers
Linux is largely built by independent developers who love their freedom. There is no overall management, roadmap, or quality control. Each application and each Linux distro (distribution, vendor version) takes care of itself, and the quality varies. Not surprisingly, chaos happens. However, many technical methods and conventions have been established from experience and by natural leaders, so the chaos is somewhat contained. Microsoft has not demonstrated that they can do any better, but Apple has.

Technologies
There are two main areas of competing technology: diverse package management systems and diverse windowing systems. The package management diversity makes it hard for developers to create applications that easily install and run on most Linux distros. The windowing diversity means that developers and users must choose from several competing systems that manage the desktop and windows. When their choices differ, an application does not integrate perfectly and has a foreign look and feel (if it runs at all). There are many other minor incompatibilities in the diverse Linux distros, and these can make applications fail or require additional work for developers to overcome.

Standards
There is a Linux standards body, LSB, but there are two big problems: LSB included most pre-existing practices (conflicting, overlapping) in the standards, and LSB is mostly ignored. Making RPM the standard packaging system has not converted any DEB-based distro into using RPM (and the adapter program "alien" is handicapped). Even among distros using the same packaging system, diversity in package naming, package boundaries, libraries, etc. prevents any sharing of packages.

Ubuntu
This is a factor that could ultimately contain the chaos. Ubuntu threatens to become the dominant Linux distro, which would set "de facto" standards for application developers. Other distributions would feel pressure to conform or be left out. This has already started to happen. The impending appearance of a new Linux flavor from Google could wreck this possibility - or strengthen it by replacing Ubuntu with a more widely available and accepted standard.

Fit and Finish, Quality
Quality in free software does not come from competition in the marketplace, but more from a sense of mission and pride of authorship. But some developers seem remarkably unconcerned about usability, bugs, and documentation. Many volunteers work on finding bugs and generating better documentation, but this is not adequate. Bugs may be fixed slowly or not at all. Community documentation tends to be disorganized, incomplete, poorly written, and full of outdated junk. When everyone is responsible, no one is responsible.

Freedom and Choice
Many Linux advocates claim that development freedom and the resulting plethora of choices is good. Freedom of choice is not always good - what if each car driver decided which side of the street to drive on? Freedom FROM choice (i.e. standards) is sometimes better. It is often hard to know where the best tradeoff lies. For example, the many windowing systems for Linux are both a force for good and a force for evil. We want competition and alternatives, but not confusion, compatibility problems, and fragmentation of development resources. IMHO, the diverse windowing systems do more harm than good.

Applications
Linux can fully meet most needs, but some things are still missing. Photoshop, MS Office, and many other proprietary (expensive) applications are not available, as well as most games. Adequate free alternatives are often available (e.g. Gimp instead of Photoshop, OpenOffice instead of MS Office). OpenOffice has been semi-compatible with MS Office in the past, but Microsoft is moving MS Office away from standard formats to prevent interoperability, while claiming the opposite and working aggressively to destroy the relevant ISO standards process. They will probably be successful and their customers will not run away.

Microsoft

Quality, security (viruses, other malware), and ethics problems are driving a few Windows users to Mac and Linux, but not many. Users are reluctant to change and need to run compatible applications, and this effectively protects Microsoft's monopoly. Those willing and able to change to Linux can save hundreds of dollars per year for software and anti-malware tools, and they can remain free of malware with almost no effort.

Bottom Line

In spite of its problems, Linux is a solid operating system with many excellent applications. It is improving rapidly. The desktop market share is only about 1-2%, but this is slowly growing. It is easy to install (esp. Ubuntu), and some PC vendors are starting to offer pre-installed Linux (e.g. Dell). You should not be afraid to try it out. You will likely have problems adjusting, but if you are persistent, you will be successful.

Linux Shortcomings
Here are some more technical descriptions of Linux shortcomings. These mostly affect developers rather than end users. Some of this is second-hand from various discussion forums.

There are multiple alternative GUI development libraries with different APIs, which change over time.

Link libraries are inconsistent across distros and across time (backward compatibility broken).

Configuration methods are in total chaos, and different in every distro. A friendly GUI interface is rarely available, and an inappropriate amount of knowledge is often demanded of the user.

The many different package systems complicate development and distribution of applications.

Old binaries don't run on a newer distro, and new binaries don't run on an older distro, even if there are no API differences at the source level (compare: 15-year-old Windows apps still run today).

Some Windows programs have no viable FOSS alternatives. Developers of complex business and engineering apps are not likely to provide FOSS versions or develop for a small, chaotic target like Linux.

Hardware drivers are often missing or crippled (printers, WLAN chips, sound cards, TV tuners, Web cameras). 

There is generally too little testing and too many bugs.

The technical and user documentation is often lousy (chaotic organization, missing, outdated).

There are multiple alternative sound systems, and sound recording and mixing is generally a mess.

There is no hardware acceleration for 3D graphics (important for games).