I have to disagree with almost all of this.
Her ult leaves enemies free to shoot or use escape abilities, and bunches them all up so they are easy targets, but also makes them easier to all be shielded by any barrier or defensive skill. A reinhardt, winston, or another zarya can just pop their shields to protect the whole bunch. Also almost any ultimate will at least soft counter.
This is a case of "get good". If zarya throws her ult at a team with reinhardt without first breaking his shield or having people in position to hit them from behind that player is playing bad. Winston's bubble is very quickly bursted down by any amount of focused fire and when the enemy team is in a graviton there's no reason anyone should be aiming anywhere else. Few movement abilities can get out of graviton and even if one or two people make it out, a well-used graviton combo will net you at least 3-4 kills and win you the teamfight. Enemies can shoot back at you but they're mostly immobile and you're not, you're also likely in a better defensive position while they've been pulled in the open if your team has decent positioning.
Her bubbles are useful for countering CC and 1-shot-kill abilities, but they are extremely weak at just 200 health and have giant hitboxes. Bubbles will not provide any meaningful protection against sustained dps. As I said before, this can seem overwhelming against teams that are afraid of her, but is largely useless against teams who know to simply shoot through her bubbles and keep shooting until she is dead. She has the least health+shields of any tank and no movement abilities, making it impractical for her to do what tanks are meant to do by sitting on the front line and soaking up damage. An argument could be made that she is more support than tank.
She isn't a main tank, she's a secondary/off-tank. 200hp isn't weak, that's the health of an entire standard character that she gets for free every 10 seconds, bringing her up to the standard 600hp of tanks on top of having shields that regenerate 30hp/s after 3 seconds, giving her very high staying power. She also has a very small hitbox compared to other tanks which lets her take less damage. I'd argue that roadhog makes a worse frontline tank since he also has 600hp, has a huge hitbox and needs to stand still for 2 seconds to heal 300hp that anything will have blown through by then. Zarya being able to absorb 200 damage aimed at another character is also extremely valuable since this is 200 damage that wasn't stopped by your main tank's shield and 200hp that nobody has to lose for them. It allows you to save people who are out of position and is one of very few things that can save a player that gets hooked by roadhog.
Saying that her primary fire is effective against speedy flankers is laughable. Her primary fire is a hitscan laser, and speed is basically the best counter to hitscan weapons. Unless you're aimbotting, or the flankers are asleep, you won't do more than occasionally graze them with Zarya's primary.
Her primary fire circumvents a lot of the most powerful defenses in the game? I'm not able to think of any besides D'va atm.
Speed is in fact less useful against hitscan weapons than it is against non-explosive projectiles to begin with(and she has explosives which push enemies around, throwing off their aim). Second, she has a small hitbox and any flanker trying to throw off her aim is going to have a hard time aiming and hurting her while she gets some easy damage in due to the beam's forgiving nature, forcing them to retreat. Genji definitely is at a disadvantage against Zarya given her small size and his projectiles and tracer would have to get dangerously close to deal any meaningful damage to her. Meanwhile they can just farm ult charge off other larger tanks which need healthpacks/healers(roadhog-aside) to recuperate from chip damage, unlike Zarya who can just play defensive and regain shields, giving the healer an easier time. Roadhog can
potentially have an easier time killing flankers, but he's also a lot more vulnerable to them and missing that hook leave him ineffective against them for 6 seconds.
Comparing her secondary to Junkrat is also laughable, when you take into account her fire speed, clip size, and reload time. And I would argue that her exploding on impact is bad far more often than good, giving her none of Junkrat's ability to bounce projectiles around corners and behind barriers.
She's a tank, not an offense hero. On the other hand, her secondary happens to be the longest range tank attack aside from firestrike, is aoe, and disrupts enemy positioning and aim with knockback. It also travels faster than junkrat's grenades, making it more reliable in a teamfight. I'm fairly sure her secondary also has a larger hitbox making for easier direct hits but I could be wrong on this one. Bouncing is neat and can be very useful in the rare occasion that a rein is backed up near a wall, but less reliable when it comes to actually hitting anything when you're not aiming for direct hits and just spamming around. Zarya gets a choice between her primary and secondary to best deal with threats, junkrat doesn't.
Zarya does a lot of different things, but she does not do any of them well enough to make a difference against a competent enemy.
She has unique mechanics that all offer very high value in experienced and/or coordinated hands.
You need to stop just taking your opinion based on anecdotal evidence or what you imagine a high level match is like and writing them off as truth when evidence points to the very opposite. She hasn't had up to ~80% pickrate in tournaments because she's bad. 101 out of 168 top500 players who had tanks as their main hero played Zarya, do you think they're all mad? If you're going to argue, do your research.