I'd also note that selling directly to customers can mean fewer viewers. For a long time, people complained about cable bundles because they were paying for things they didn't want. Now people are complaining because they need to pay for 5-10 different subscriptions.
If a sports league makes a deal with ESPN and most people get ESPN as part of a bundle, a lot of people are going to watch who might not otherwise watch. If you need to buy NFL-TV to watch a game, many people will simply not watch the game.
Think about how many things that are included with Netflix that you've watched, but you'd never pay for individually. Sports leagues don't want to put people in the situation of deciding if they like the sport enough to pay for it individually. They'd rather have their programming as part of a larger bundle that customers already pay for. Hard-core fans would pay for their sports league, but they'd lose out on all the casual fans, people who might watch a game or two a week (and wouldn't feel like paying for so many games was worth it to them), and people who might watch a game with other people if it was on (and free).