Too many teams, too many games, and HD TVs.
Most NFL fans root for teams. A lot of NBA fans root for players. When that player leaves, the team becomes irrelevant. When the few stars in the league are clumped among a handful of teams, games not involving those teams will only draw diehards.
If I can see half the games on TV on my nice 60" widescreen why do I want to fight traffic, spend $100 or more, and listen to piped in music the entire game?
One of the reasons the NFL is so popular is they only play 16 games. Each city gets 8 home games. In most places, those 8 days are sacred. The same is true of big time college football.