Goh's actually great character and backstory wise, functioning as almost a perfect counterpart to Ash. Whilst Ash is bold, courageous, improvisational and outgoing in nature, Goh's the opposite. He's calculated, solitary, prudent and spends more time learning about rather than bonding with pokemon. Unlike how Ash went out to summer camps, interacted with pokemon and hung out with Gary, Goh spent most of his time in a dark room front of a screen. The one time he actually went to a summer camp, he's really just flexing his knowledge on pokemon (which even his only friend calls him out on) and wanders off on his own, rather than actually spending time with other people there. His parents being workaholics only furthers this - even on family vacations they're so exhausted and nap, leaving Goh by himself yet again. They almost even regret not spending enough time with him growing up (in episode 15). The one time actually he tries to make a new friend, it unintentionally backfires massively on him. His experience with Tokio both reinforces his belief that he should spend most his time himself but also subconsciously motivates him to seek out pokemon partners in compensation for his lack of human ones. So when we meet him, he almost comes across as standoffish, selfish (rejecting Scorbunny at first), cold-hearted (remember his comment towards the Ivysaurs in ep 3), a smartass and purely just interested in pokemon rather than living his life (since he skips school even). In reality, he's just deeply insecure about himself due to his experiences.
There's a lot more to his character than just 'haha monsta ball go brrrrr'. I feel like people don't give him enough credit for what he does right. Part of what makes him so polarising is that he's unique: he's not based off any game characters, his goal is more ambitious than any companion, he started as Ash's only companion this series, isn't tied down to just 1 region and of course owns the most pokemon out of any character we've seen (let alone a main character). He's certainly not whatever braindead labels people have given him.
However, he can be inconsistent and his development has been rocky. He's definitely progresses as a character - he learns to recognise his pokemon's desires (seen with Raboot), confronts demons from the past, opens up to new people, becomes comfortable with releasing his old mons (Floette), care for them (Suicune in particular, but his whole party really) and truly begins to empathise with them (Drizzile, Alolan ninetales even). I just think they didn't take the time to properly flesh him out and streamline the journey. They have the right idea but could've handled incidents like Zapdos, Suicune and Grookey better. Also could've helped to introduce/hint to project mew earlier so he didn't feel that aimless from the start. Sometimes he also feels too similar to Ash and that his flaws appear to be 'ironed out' too soon (which is what make him more interesting in the first place). For example, his battle skills. He does get a lot of second-hand experience analysing Ash's battles/strategies and trains with him occassionally (+ beating team rocket), but he ramps up pretty quickly. Could've spaced that out and have him struggle more.
Another reason why I think Goh gets so much hate is because Ash himself hasn't done much this series (relatively speaking). Because we've seen Goh's journey so much, it's easy to use him as a scapegoat for the whole series' problems. I think if they had a more concrete plan with him and handled Ash's journey properly from the start, people would've been way more forgiving towards him. In the end he's still one of my favourite companions and a pretty interesting character to analyse and discuss. We'll probably not get another character like him, for better or worse.