An alternative to running dune in watch mode is to use entr
to create an ad hoc builder/watcher.
Something like this:
find ./lib/ -name "*.ml" | entr -c bash -c 'dune build && echo OK'
This won’t lock any files, so you can reload your dune utop
process more easily that way.