I think the biggest difference between the NFL and MLB is the schedule. When each team is playing a 16 game schedule and the games are limited to certain days of the week it's easier to make Sunday Night Football into a big event. They can drum up that event hype that makes people who aren't fans of either team tune in to watch.
Baseball, on the other hand, has a 162 game schedule and there are games every day of the week. If you watch the majority of your team's games you will have a game to watch almost every day during the season. It's harder to ask people to watch a national match-up and follow their own team 6 days a week. You're talking a lot more hours a week of baseball watching than you are of football watching and the more games they play the less of that event feeling there is.
Another big factor is fantasy. I'm 27 and everyone I know plays fantasy football. For my generation even people who aren't really football fans, including females, play fantasy football. It might be to a lesser degree but the older generation is highly involved in fantasy too. You're more likely to watch a random Monday/Thursday night football game if your fantasy QB is playing.
Yes, fantasy baseball does exist. I have been playing for the last several years but nowhere near as long as I've been playing fantasy football. Like I said, everyone I know plays fantasy football but it's pretty rare to talk to someone else who plays fantasy baseball.
Bottom line, the popularity of fantasy sports makes people care about games that don't involve their local teams. Football is dominating the fantasy sports market.