Barry Ritholtz lists ten reasons at the Washington Post (link1). To summarize:
1 Secular cycle (long term cycle)
2 Psychology (investors are scared)
3 Risk on/risk off (Fed intervention)
4 Poor returns (self explanatory)
5 De-leveraging (paying down debt instead)
Five more reasons are at the link and I see it as a decent summary of reasons. In a separate article, high school students were surveyed and 75% believe the stock market is rigged against them.
Over at the Ritholz blog (link2), he makes an argument against the thesis of the book Stocks for the Long Term (1994), that over the long term stocks always outperform bonds.
Let me add two cents and say that what many long, long term investors ignore are systemic risks where government bonds and stocks go to near zero. This happens when governments fall, because they lost a major war, revolution, or the country breaks into pieces. While extraordinary events, they do tend to happen. Read some world history and count up major powers in the 20th century that suffered such events (China, France, Germany, Italy, Japan, Russia).
Only the United Kingdom and the United States were relatively free from these scars in the 20th century, and even they suffered major problems from winning the wars. The odds are much greater than the miniscule percentages that most Americans like to give them. Probably because Americans have never seen it happen here. This is a good case for having some physical gold, just in case.