I'd like it for each fighting style to be different. High defense (weapon+shield), high damage (thf), multiple attacks (twf) are pretty nice differences. The question is who do you want to be good with each style? Since the Fighter gets all of the styles, there's a part of me which wants them to be balanced with the Fighter in mind; I'd rather make TWFing work with the Fighter and then tweak other options so that other classes don't overshadow it. Right now, TWFing only feels like it makes automatic sense with the Rogue (and it's built into the Monk); both of these classes have other things to use their Bonus action for, so there's competition.
First, lets assume a baseline 16 Stat plus proficiency (+5 to hit) against the base AC from the DMG monster table (13); these scale relatively evenly in the low levels, maintaining a pretty flat 65% chance to hit (at high levels, AC scales a little extra, but that's made up for with magic weapons; I'm going to assume a +1 enhancement bonus at 12, 16, and 19).
Level 1; 16 Str, +5 to hit vs 13 AC
GWF: 2d6*+3 (gwfing; avg 11.33): 7.8 dpr, baseline
Shield: 1d8+5 (duelist; avg 9.5): 6.4 dpr, +2 AC
TWF: 1d6+3 and +5 1d6+3 (twfing; avg 6.5x2): 8.8 dpr, lost bonus action (TWFing ahead by +1)
Okay, so TWFing starts out a good deal ahead of GWFing, but it costs a bonus action. The fighter can use that bonus action for second wind, and they don't get an extra bonus action if they use action surge once they hit 2nd level.
Level 4: Stat 18
GWF: 2d6*+4 (gwfing; avg 12.33): 8.4 dpr, baseline
Shield: 1d8+6 (duelist; avg 10.5): 7.1 dpr, +2 AC
TWF: 1d6+4 and +6 1d6+4 (twfing; avg 7.5x2): 10.1 dpr, lost bonus action (TWFing pulls further ahead to +1.7)
Level 5: Stat 18 still, Extra Attack x1
GWF: 2d6*+4 x2 (gwfing; avg 12.33x2): 16.8 dpr, baseline
Shield: 1d8+6 x2 (duelist; avg 10.5x2): 14.2 dpr, +2 AC
TWF: 1d6+4 x3 (twfing; avg 7.5x3): 15.2 dpr, lost bonus action (TWFing falls behind to -1.6; needs +1d4 to get nearly even)
Level 8: Stat 20
GWF: 2d6*+5 x2 (gwfing; avg 13.33x2): 18.2 dpr, baseline
Shield: 1d8+7 x2 (duelist; avg 11.5x2): 15.4 dpr, +2 AC
TWF: 1d6+5 x3 (twfing; avg 8.5x3): 17.1 dpr, lost bonus action (TWFing closes the gap, still -1.1; needs +1d2 to be basically even)
Level 11: Stat 20, Extra Attack x2
GWF: 2d6*+5 x3 (gwfing; avg 13.33x3): 27.3 dpr, baseline
Shield: 1d8+7 x3 (duelist; avg 11.5x3): 23.1 dpr, +2 AC
TWF: 1d6+5 x4 (twfing; avg 8.5x4): 22.8 dpr, lost bonus action (TWFing falls behind even Sword+Shield; -4.5; needs nearly +2d6 to be even)
At level 11, TWFing falls behind everything. This gap could be closed by having Extra Attack x2 grant an extra offhand attack as well. But, this wouldn't balance against additive damage, like +1d6 elemental weapons.
Level 12: Stat 20, Extra Attack x2, +1 weapons
GWF: 2d6*+6 x3 (gwfing; avg 14.33x3): 29.2 dpr, baseline
Shield: 1d8+8 x3 (duelist; avg 12.5x3): 25.1 dpr, +2 AC
TWF: 1d6+6 x4 (twfing; avg 9.5x4): 25.3 dpr, lost bonus action (TWFing rises a bit ahead of shield, but still -3.9; needs about +2d4 to be even)
Level 16: Stat 20, Extra Attack x2, +2 weapons
GWF: 2d6*+7 x3 (gwfing; avg 15.33x3): 31.1 dpr, baseline
Shield: 1d8+9 x3 (duelist; avg 13.5x3): 27 dpr, +2 AC
TWF: 1d6+7 x4 (twfing; avg 10.5x4): 28 dpr, lost bonus action (TWFing behind -3.1, it moved up a smidge; needs about +2d4 to be even)
Level 19: Stat 20, Extra Attack x2, +3 weapons
GWF: 2d6*+8 x3 (gwfing; avg 16.33x3): 33.1 dpr, baseline
Shield: 1d8+10 x3 (duelist; avg 14.5x3): 29 dpr, +2 AC
TWF: 1d6+8 x4 (twfing; avg 11.5x4): 30.6 dpr, lost bonus action (TWFing behind -2.5; needs about +1d6 to be even)
Level 20: Stat 20, Extra Attack x3, +3 weapons
GWF: 2d6*+8 x4 (gwfing; avg 16.33x4): 44.1 dpr, baseline
Shield: 1d8+10 x4 (duelist; avg 14.5x4): 38.7 dpr, +2 AC
TWF: 1d6+8 x5 (twfing; avg 11.5x5): 38.25 dpr, lost bonus action (TWFing behind -5.85; needs about +3d4 to be even)
I realize that I'm unsure if monster AC scales faster than player attack past 11th level (I know for certain that monster attack outscales player AC, unless you're a monk or possibly barbarian), so the numbers for level 12 here may be different. At 65% chance to hit, +1d6 damage from an elemental weapon or other bonus adds up to +2.45 per attack. I added a "needs X" to each of the TWFing to bring it up to par with GWFing.
I don't think TWFing should be doing more damage than GWFing. I think TWFing's advantages (an extra attack roll, lower chance to do 0 damage) is enough of a bonus for using the bonus action. TWFing's advantages do get smaller for the fighter starting at level 5 with their extra attacks, especially with the fighter and their x2 and x3 extra attacks.
Magic weapons do benefit TWFing, but the TWFer does require two magic weapons. If they get two magic weapons, then the GWFer gets a magic weapon and maybe a belt of giant strength (which will push them even higher), and the shield user gets a magic weapon and a magic shield (pushing their AC even higher). This is why I don't think magic weapons balance TWFing. Sneak attack balances TWFing. Hunters Mark/Hex/Rage/Divine Favor/Elemental Weapon and all the other ways of adding dice to attacks can balance weapons, but I show just how much extra damage is needed.
The Fighter is the worst case scenario, because they get 3 and 4 attacks.
I hope this shows that TWFing isn't "too" far behind. It starts out noticably ahead. It falls behind if magic weapons aren't utilized. It can be close to even if enough effects are stacked, but it would take a lot to make it pull ahead. It's really that bonus action cost that hurts it; maybe that can go away once someone has "Extra Attack", since +50% attacks is worth a lot less mathematically than +100% attacks (not to mention +33% attacks and +25% attacks).