That was true until 4.08. OCaml now supports monadic let bindings, and more generally, user defined let bindings [1].
You get the benefits of ppx_let (Jane Street) but in a more general and syntactically nicer form. I still wouldn’t call it as nice as do notation in Haskell but it makes monads highly usable in OCaml without the need for an external dependency.