I suspect it's mostly synchronization issues. Trying to get two independent motors turning at exactly the same speed is likely a major challenge, and if the speeds are even slightly different then the car will pull toward the slower one. A differential meanwhile is a relatively simple and well-understood piece of technology that does the same job (uniform wheel power with slippage compensation) more simply.
Plus the cooling system is no doubt much simpler with only a single motor that's not surrounded by a big spinning wheel.
3 phase brushless DC motors are likely what is in use, they have very precise speed control as the rotor location is known at all times unlike a brushed DC motor, your problem would be apparent if different sized tires were used. I doubt there is any problem cooling hub motors as brakes have been air cooled for ever and sit inside your 'big spinning wheel'
A debugged program is one for which you have not yet found the conditions that make it fail. -- Jerry Ogdin