The structure of MLB makes it difficult for teams in the small markets to compete, once they start to get a few good players they cannot afford to pay them what those players are going to make in a larger market. So teams like the A's, Twins, Royals and a few others build up their players, win and then lose everyone and have to rebuild, while teams like the Red Sox's, Yankees and a few others can keep purchasing players to keep winning.
The NFL is completely different, it's more poor ownership and management why teams like the Browns, Raiders and others keep losing for decades. Just poor choice after poor choice is made, and a constant revolving door of coaches.