Enzo is the Morally Gray Character Everyone Pretends Damon is
The writers didn't even try to hide it as they paralleled much of Enzo's background with Damon. If anything, his story is more tragic than the "poor little rich boy" story we get from Damon. I'm not discrediting the abuse Damon suffered, more pointing out the privilege Damon lived with, especially given his role in the Confederacy. No child should have to suffer abuse. But this privilege is often ignored when discussing Damon.
Enzo has a tragic childhood, being orphaned at just four years old and forced into a workhouse. Unlike Damon, Enzo was turned without any prior knowledge of the supernatural world. And he was turned by Damon's mother, tying them together. He was then abandoned as the only vampire he knew was locked in a prison world, leaving him to figure everything out himself. Damon was also alone, but this was done by choice. Like Damon, he also fought in a war, but unlike Damon, he fought on the right-side of WWII. We don't know much about this time in Enzo's life, but I do love that they almost give this story to Damon as well. However, Damon was only joining to be with Stefan and ended up not enlisting at all when Lexi talks him out of going with Stefan.
Enzo was captured by Whitmore and experimented on for ten years. He found love but compelled her to forget him to keep her safe, but was later killed by Damon. Similar to how Damon compelled Elena to forget him, but unlike Enzo when Elena chose to compel the memories away, he can't just let her be happy without him.
When Damon was also captured by Whitmore, Enzo befriended him, showing he still was caring person despite everything that had happened. Despite being held captive for twice as long as Damon, Enzo gave Damon his rations of blood for a year, starving himself so they could escape. But when the time came to escape, Damon left Enzo behind for dead. Because of Damon's actions, Enzo is then held captive for over 50 years.
When we meet Enzo his anger is initially directed at Damon, but upon learning that Damon kept his promise on killing the Whitmores, he forgives him for leaving him for dead and shifts his anger to the Whitmores. Enzo killing Aaron made sense since this was his entrance and his anger was still fresh, whereas Damon killing Aaron just showed that he hadn't actually had any character development that the show claimed he had. Damon also uses his position with the MF gang to manipulate Bonnie into helping by threatening Jeremy.
Enzo only turns on Stefan when he believes that Stefan was the one who killed Maggie. Finding out that it was his only friend that killed the woman he loved, instead of trying to kill Damon, he turns off his humanity because he feels so betrayed and heartbroken. Without his humanity, he targets Elena to get revenge on Damon. Stefan kills Enzo so then Enzo seeks revenge against Stefan. It's all logical.
The worst thing Enzo did was Sarah. This is my least favorite Enzo storyline, but not just because the death felt so pointless. But because it all felt out of character and random. Why was Enzo holding onto such a strong grudge for Stefan? Yes, Stefan killed him, but only because he was trying to kill Elena. Enzo's anger would have made more sense directed at Damon, but the writers couldn't let anyone be angry at Damon for more than an episode. But then Enzo doesn't even kill her. Sarah convinces Enzo to let her go
When Enzo kills, it is strategical. He doesn't do it out of joy, but rather because he feels he needs to and he has so much anger inside of him. Right or wrong, this is different than Damon's stance of killing for fun. When Caroline pushes back to Enzo, he says sometimes they have to kill for survival and they can't afford to hesitate. When Damon is called out on his killing, he says it is just part of being a vampire. He revels in it.
Even when Enzo is reunited with his long lost family, the Heretics, he doesn't enjoy taking their side. He is torn because he has never known a family and doesn't know what one feels like. He doesn't like harming the people he has known for a short while. He again chooses his blood family at the Armory initially, still hoping to find that family. But he's not really betraying anyone by doing this. The MF gang was never his family. Damon was his friend who betrayed him. He didn't owe them loyalty. But when Enzo finally finds family in the MF gang, in Bonnie, nothing will make him betray that. Unlike Damon, Enzo's loyalty isn't transactional.
The biggest difference between Damon and Enzo is that Enzo has the character development the show desperately tried to pretend Damon had.
Enzo values his friendships. When Damon dies, he is one of the main characters seeking to bring him back. Even attacking Stefan for giving up. Enzo comforts Caroline throughout the summer as she struggles. He counsels Bonnie to let him go because he'd rather her live and be safe than bring him back to life. He even talks her into forgiving Stefan so she doesn't live the rest of her life in pain.
Damon does very little to bring people back, usually just resorting to begging/forcing Bonnie. Even when Elena's in a coma, he doesn't spend the years seeking a loophole, rather he decides to desiccate and abandon his friends and brother. He misses his dead friends but doesn't honor their memories.
The writers actually learned from their mistakes with Damon. Damon entered the show as a villain in Season 1 and that was really hard to come back from. His assault on Caroline, killing Lexi, Vicki, and countless other people for fun, his yo-yoing back and forth between "good" and "bad" depending on how Elena was treating him, it was all too much without a really good redemption arc. Which they didn't bother doing. We don't see Damon ever feel remorse or apologize for anything. Everyone just forgives him.
While Enzo actually works to repair his relationships. He feels remorse for what he's done to the extent that he warns Caroline and Bonnie not to live like him. His very last actions are to make sure Bonnie forgives where he couldn't so that she could move on the way he couldn't.
Enzo was far from a perfect person, but he is by far a better "morally gray" character than Damon.
While the show essentially white washes Michael Malarkey's background, we have to acknowledge the racism that plays a part. And even the larger disenfranchisement of Palestinian actors or even just Pro-Palestinian actors. Michael is proud of his Palestinian heritage. We can't ignore the impact this has had on him in the fandom and even with the cast and crew given their stances.
People are always quick to talk about the racism in the fandom, yet it always seems to fall short when discussing Michael/Enzo. It could just be because of the whitewashing in the show, but I've seen the discussion brought up more with Michael Trevino who is also a whitewashed character thanks to the shows blatant racism.
A lot of the complaints against Enzo is that he was taking roles they wished their favs had and he wasn't even a "main character. But why is Enzo not considered a main character? He has a 59 episode run time (4 seasons). He is classified as a main character online, but the fandom continues to sideline him. He has a longer run time than Klaus by double, yet we wouldn't say that Klaus wasn't a main character on TVD.
I've never actually seen legitimate reasons to hate Enzo. All of the reasons are farfetched or cherry-picking the plot so bad I swear they only watch certain character scenes.
Damon was a bad person who had moments of goodness. Enzo was a good person who had moments of "badness." I don't get why everyone wants to hate on Enzo just to make them feel better about liking Damon. Just like Damon.
But I love Enzo and I have so much respect for Michael Malarkey. They both deserved better from the fandom and the writers.