No idea why MLB does this, but for the most part if you catch the last game of one of the teams homestands, you can usually catch the first game of the other teams homestand. I have gone about planning trips to both New York and Chicago this way, so it will work for you if you try.
I believe it was so they wouldn't cannibalize the fan who will go to either team. If someone decides to go to a ballgame on a certain date, they have only one option. This also enables one team to be home any day someone might want to go a game. I think idea isn't without merit. I live in LA and the Dodgers and Angels are rarely home the same day. If I feel like going to a game, I might choose the team that's home.
You can find a handful of days each season where both teams are at home. It often happens, however, that they play around the same time. The Dodgers game started 1 hour before the Angels on Memorial Day.
I went to a Met game in the afternoon and a Yankee game that night. It was exhausting. If you want to do it to experience it, then do it. But I wouldn't recommend it.
Chicago is going to have a doubleheader on July 3. The Whitesox play the Orioles at 1:10 and the Cubs play the Marlins at 7:10. I'll be making the trip in to watch both games.
In addition, the Cubs have scheduled a makeup game for August 24, 1:05, which creates a DH with the White Sox hosting the Red Sox at 7:10 that night.