I have to disagree that it is a great fit for Kotlin. On the contrary, it is designed to make use of syntactic sugar specific to JS, which means the idea does not extend to any language that does not have the same feature.
The problem is not so much that we cannot compile Kotlin into JS code containing template literals. We just need the compiler to output the desugared version i.e. foo(["hello"], 42)
and it will work just fine. The problem is that the Kotlin language does not have template literals. That means that even if we could output template literals, we would still be unable to write Kotlin code that looks anywhere near what we would write in JS.
If you want a convenient way of building DOM trees in Kotlin, then you are better off looking for libraries designed to make use of Kotlin specific features, such as kotlinx.html.