These are my ideas.
Ana: All the time! Dive, Deathball, Bunker, Hybrid, she’s always good unless they are focusing the **** out of you and making you completely useless.
Your aim doesn’t matter that much. Position well, be prepared against threats and use your cooldowns well. You can carry a team fight with a good nano or a nade. Don’t be afraid to DPS to secure kills and let your teammates die unless their death means the fight is lost (like 2 CP attack.) Also don’t be afraid to flank.
Mercy: Great with Pharah, Hanzo, Widow or any other hitscan hero. Good when running Dive and against Dive and still a decent pick on open maps or those with lots of high grounds such as Gibralter, Numbani 1st, etc.
Also probably the least risky pick for solo healing.
Moira: Only good in closed maps and maps without high grounds. She gets better the more tanks you have. She is great with Deathball and Brawl comps, she’s good with bunker comps but she also works well with Dive on maps like Lijiang Tower. If you are running Pharah/Mercy you can pick her so your Mercy can stay with your Pharah as you take care of the tanks.
Brigitte: She plays like an off-tank. Exceptionally good against shotgun and rifle heroes such as S76, Reaper, Hog, etc. Still decent against flankers (Doom, Genji, Sombra, Tracer) especially Tracer. All of them have their tools to outplay you so you have to be careful. If they are good focus on farming ult, your ult is a bigger counter to them than your shield bash.
Also play her if you have bad supports like if your Zen or Ana is feeding all the time.
She’s much better in maps with tight spots that favor Deathball and Brawl comps like GOATs but she can work well in other situations as well.
Lucio: Always good but exceptionally well on control maps. He’s not the best on 2CP defense but you can still get a lot of value if you have the right comp such as a lot of immobile and static heroes.
He is good with and against Deathball due to his speed and against Dive you can get a lot of value out of your boops and peeling power in general.
His ult is really good now so play him whenever you need a defensive ult. His ult can work really well if you Genji, S76 or heroes like that because he can keep them up during Blade, Visor, etc.
Zen: Pretty good as long as you aren’t getting countered by Doom/Sombra that are dominating atm. His ult is great for reviving team fights or shutting down enemy ults like before.
He can heal targets as long he has LOS so he is decent on open maps or those with high grounds but he can work well everywhere else too.
He plays very similar to a DPS so if you know how DPS positioning works then give him a try. He is probably the option to hard carry on support and the one that relies on good mechanics the most (much more than any other support even Ana.)