I have mostly positive feelings toward MLB's iPhone app, but I do have one gripe.
It's great to be able to watch live games on your phone. But once commercials hit, you get the screen above. No commercials, no music, nothing for two minutes.
This is because MLB is giving you the local TV feed of the game (for example, the Dodgers broadcast as seen on Prime Ticket in Los Angeles). The local advertisers are paying to reach the local audience, not a national one.
Of course, one could close the app or switch to a different game, but the network lags involved in doing so make it not worthwhile.
There are many content models that involve a free, ad-supported version and a premium, ad-free version. For instance, you can buy the DVD boxset of your favorite TV show if you don't want to sit through the commercials. Sports differ from scripted shows because they are best enjoyed live, and the frequent commercial breaks come with the territory. The MLB app is one of those rare exceptions in which paying customers would probably prefer commercials, or something else of visual interest, instead of a blank screen.
Perhaps MLB isn't getting the kind of revenue offers it would like for such ads. But any additional revenue, however small, is always good for the bottom line, assuming that the ads would generate more money than they would cost to solicit and stream.