The owners would implement a salary cap in a New York Minute if they had the opportunity. The players, however, would not agree, and because MLB is so successful monetarily even without one, and also has one of the most powerful players unions, the owners don't have the power to force it on them. It's not hard to find articles about how the MLB owners would like a salary cap and the MLBPA refuses; see this one, this one,
Why is that? Because a salary cap is not intended to create parity. The primary function of a salary cap is to reduce player salaries, or at least keep them from escalating too quickly. Salary caps reduce the maximum a player can earn - either directly (NBA-style) or indirectly (NFL style) by simply reducing the total amount a team may spend on salaries.
The problem with MLB being uncapped (particularly pre-recent luxury tax rules) was that player contracts simply escalated as new owners came in and decided to spend a lot. That escalation was not necessarily related to total income of the league. NFL and NHL, and to a lesser extent NBA (which is a softer cap closer to MLB's current system) have direct ties between revenue and player salaries - which mean you can't have player salaries escalate dramatically, unless the total revenue for the league is very high.
Look at the following chart of post-1994 strike revenue vs. player salaries:
While the two lines trend together over the long term, there are some regions that are very different - particularly in 2001-2004 and 2008-2012 where player salaries were well above the trend line compared to the MLB revenue. Some of the major CBA changes were in direct result of these differences. Note that the latest CBA seems to have finally had enough impact that the players' line is below the MLB line for the first time since 1998.
A full salary cap would guarantee it stayed below or on the trend line. Hence why the owners - who are almost all businessmen who want to run a successful business, Jerry Reinsdorf aside - want a full salary cap. And conversely, the MLBPA would prefer not to have one, so salaries can be higher thanks to free market bidding.
One note about the NBA: Because of the NBA's very ... odd ... salary cap, it actually has less fairness. That's because Lebron-type players are badly underpaid due to the player-salary limit. NFL and NHL style salary caps are much more fair in terms of evening out competition. They also reward good front offices though - which is probably why they have fewer 'new winners' compared to the MLB. They also have less trading than the MLB of future talent for now talent, meaning that teams like the Rays, the Royals, the A's, etc. can grow on relatively small salaries by trading their good players away for future prospects who will be much cheaper. MLB also has a far more limited salary structure for newer players - most players play three full seasons for almost nothing and three more at very low rates before becoming free agents, as opposed to the NFL (rookie salaries are limited, but far less so than MLB) or NBA.