If you glance at most of Dream's examples that serve an interactive client, you will see that they serve JavaScript:
https://github.com/aantron/dream/tree/master/example/k-webso...
You can use anything you want for the client, and I use the JS ecosystem heavily in my own usage.
There are several full-stack OCaml examples, but that's entirely optional:
https://github.com/aantron/dream/tree/master/example#full-st...
As for server-side comparisons, OCaml is much easier for me to work with than, for example, TypeScript for many reasons. The first is that I can compile several hundred OCaml files, in the rare case of a full rebuild, in less time than running tsc incrementally on a small project, resulting in a much better iteration experience.