No, it's the correct decision because Royal ran 20 yards to barge Ziyech in the back. Ziyech whirled around and pushed Royal in the shoulder and his hand slipped up and across Royal's shoulder so his fingers brushed Royal's face. Not an attempt to strike someone in the face, and provoked. Yellow card was correct.
Havertz got the first yellow for tripping Richie. Everything worked as it is supposed to. Please try harder to understand VAR; the ref asked who raised their hands, VAR said it was Ziyech, Ref and linesman thought it was red, at which point VAR can intervene and say it deserves a video review. Perfect.