The library expects ocamlmklib to produce both a shared and a static library:
https://github.com/owlbarn/eigen/blob/master/eigen_cpp/dune#L3
If OCaml is compiled without shared libraries, this rule fails. Could the problematic rule be rewritten into a dune stanza that omits building a shared library for a static environment?
Dune now seems to support targets with no shared libs:
ocsigen/lwt#599