Too many unprofitable teams. And here's a reluctance to make needed wholesale changes to the game to stir interest because of baseball's adherence to its "sacred" records.
I'm a fan but I don't watch the games until the post-season , and only the ones with teams I have a routing interest in.
Changes need to be made ASAP or the game will keep on dying. You used to see kids playing ball in parks or playing catch. You never see that anymore. Basketball and football have long since supplanted baseball's popularity.
I say cut the season to 100 games, cut the perennially under performing teams, put in a time clock for pitches to be delivered to reduce the length of games, award a baserunner if pitch not delivered on time to create more scoring/interest/excitement, cut the games down to seven innings (like NCAA women's softball where games move along swiftly), introduced a shoot-out/homerun derby at the end of seven inning. tied games so that there are no more hours-long, extra inning games, limit pitching substitutions to only 3 per game, leave it at 3 strikes for an out but cut balls needed to walk to also 3 for more runners. That's all I can think of now but forget about the sacred numbers. Saving the game is more important. Make these changes and interest will come back.