The fiscal imbalance exists because some teams are run by cheapskate billionaires who are happy to collect MLB shared revenue and still make a profit while investing nothing into building a team or a brand in their region.
A salary cap is just a way to keep more money in owners' pockets.
Only partially true. Obviously the NFL has the most fair rev share split, but that's possible only because they have national broadcast rights at the league level.
You can't really replicate that with the NBA or MLB, unless you convinced owners to completely upend the status quo.
However, the NBA has quite a brutal luxury tax setup. I think it's actually too punitive*. But even as a Dodgers fan, I wouldn't mind if the large market teams paid a little more into revenue sharing. The economics in MLB makes it impossible for small market teams to truly invest in their team, although you're right that some owners are tightwads. The way to solve that is to insist on a salary floor as well.
A salary cap doesn't necessarily maximize profits. In the NBA (and probably the NFL as well), players get a fixed cut of the total money pool. IIRC it's about 47% in the NBA, but used to be higher before the owners flexed**. So a salary cap (hard or soft) doesn't take money out of players pockets, but it ensures that big contracts get distributed throughout the entire league.
* In about 2 years, the top 3 players on the champion OKC Thunder will soak up about 80% of the salary cap. Chances are that isn't sustainable, although OKC could try if they are dynastic.
** Players in Spain's La Liga were getting a lot higher than 47%, which is why perennial powerhouse FC Barcelona was teetering on insolvency a couple years ago, despite being one of the world's most valuable association football teams.
The Dodgers got a sweet deal where their TV deal is great and is also not subject to the revenue sharing. That is because the Dodgers went bankrupt and MLB gave the owners a waiver that lasts to like 2038 or something.
I've read this is a myth. IIRC the Dodgers have paid the most money into revenue sharing over the past 12 or so years (prior to that, it would have been the Yankees and Red Sox).