My sense with many templating engines is they are trying to crowbar programming functionality into HTML and always comes across clunky. It's usually a separate language from your server code entirely. Inline If statements and For Loops embedded in your HTML. And composing a template with a subtemplate is often clumsy.
With JSX you just write your normal JavaScript or Typescript and output JSX. Then the JSX is turned into HTML and returned to the browser.
But of course I'm not familiar with every HTML templating library out there, but I've used a few and I really love working with JSX.
https://pagetemplates.readthedocs.io/en/latest/tal.html
These days I reach for Chameleon, another Python implementation:
https://chameleon.readthedocs.io/
I'm aware of at least five implementations for JS: template-tal, jstal, Distal, DomTal, ZPT-JS.