Two good reasons for this.
#1 - Lack of money to run a national campaign.
Why would it take money to win a national campaign? A candidate will not attract donors if voters don't support the candidate's ideas. The trouble right now is that Iowa and New Hampshire are left-wing/libertarian states that do not represent the nation as a whole either separately or jointly. But all of the media attention lavished on these states almost guarantees the nomination of a left-wing Democrat and a libertarian Republican who will do nothing more than give lip service to conservative social issues.
#2 - The wide spread belief that voting for a third party is the same as wasting your vote. Both the GOP & DNC help foster this notion.
True. But the real problem is that there are too many 3rd parties. Ideology aside, the presence of so many 3rd parties means that the 3rd party effort cannot coalesce around a single party and thus demonstrate the true size and scope of the country’s dissatisfaction with the major parties.