The parameter current-unescaped-tags holds tags that needs unescaped contents.
You need to set to html-unescaped-tags. If I recall correctly this was done
to have backward compatibility with older code.
(parameterize ([current-unescaped-tags html-unescaped-tags])
(xexpr->string '(script "SetTimeOut(() => {let d = new Date();" )))
If you already happen to be using the txexpr package (or don't mind an extra dependency) it also includes a function xexpr->html that skips the content of <script> or <style> blocks.