The less generous part of me says it is because of the rah-rah-go-our-team mentality of much of the American populace that has to turn everything into Us vs Them, and having more than one Us or more than one Them, or a third party that isn't either one, is just too much for them to handle.Well with regards to voting, don't complain about the result if you couldn't be bothered to vote. But why hasn't a third party or more managed to gain some traction in the US.
But it is also true that the two major parties have done a pretty darned good job of legislating a degree of security for their own mutual control of the system. Getting at least 5% of the vote guarantees your party's candidate is on the ballot next time - which they always do, but is very hard for a new party or even a smaller established one like the Green or Libertarian parties. Without that guarantee, you have something like $25 million dollars to pay and 7.2 million signatures to get altogether to be on the ballot in all 50 states - and it's a state by state process, also, not something you can just turn in to the Federal Elections Commission one time.
And then voters tend to be reluctant to lose whatever seniority and party connections their politician has in the House/Senate to bring benefits (and pork) to their district/state. Everyone says "throw the bastards out" but what they usually actually mean and demonstrate at the polls is "throw all the bastards out except MY bastard".
And THEN, there actually have been a few times when a third party has done well - like Ross Perot and the Reform Party in 1992 - but repeat performance to build on those successes is hard because mostly when that happens, it's really the candidate, not the party. The Reform Party ran Perot again in '96, but at that point he already had the stink of "loser" (and not just a loser, but a loser who had blown his own chances with his choice of Veep and other weird behavior like dropping out and dropping back in, in '92) and was running against a popular incumbent. And then 2000 came and the Reform Party ran Pat Buchanan and the nation mostly either yawned and said "who?" or knew who he was and said "hell no". It being the candidate and not the party was mostly true of Ron Paul with the Libertarians, too. Gary Johnson has only done as well as he has the last two elections (still below 5%) because of the people he was running against, not really his own merits.