The JSP/ASP story is very much why Angular 1.X was a trainwreck. It works very similarly.
Did you watch the linked video by Pete Hunt? He does a much better job than I do at explaining the rational. Everyone who looks at React has the same reaction. I personally dismissed it the first year it came out (along with almost everyone else) for the same reason. At the time, it was even worse: tooling (like linters) could not handle it, either.
But things have come a long way since then. And there’s a huge difference between script in markup vs markup in script. The later gives you a full featured programming language that could handle this stuff all along. This is in contrast with the former, where you have to extend the markup like crazy to make it work.