Fundamentally, I think it is the cathedral (INRIA) vs the bazaar (Haskell.org open source) leading to long term efficiencies for the Haskell community.
Also, the OCaml community seems more fragmented, so its harder to organize group efforts. Haskell hackathons are happening every 4 months or so, in the US and Europe (we've had 9 in 3 years). I don't know that the OCaml open source community has held any similar kind of event.
OCaml is a well designed, well implemented language.
Unfortunately, it sits at an unstable point in language design space. If you like it because it's practical, there are other languages (C++ and Java) that are even more practical. If you like it because it's functional, there are other languages (Haskell, Erlang) that are even more functional. If you like it for being ML with objects, then you would probably like F# even better. And so forth.
The result is that there just aren't that many people who like Ocaml more than another language.
I was working on a project in Fortran. I recommended OCaml, saying that it had all the same capabilities as Fortran (high performance, portability, compiling to native code, support for similar programming style) but also had additional features that would make me more productive. OCaml's position in language design space was perfect for a project in which a functional programmer would be doing most of the work, but a client felt more comfortable with something Fortran-like, in case he ever had to maintain it himself.
If I were making the decision completely on my own, I would prefer Haskell, but in-between languages like OCaml can make good compromise options. I also learned OCaml before Haskell, and consider it to have been a good stepping stone.
OCaml works well as a multiparadigm language. While it has some implementation quirks* , I like that its design doesn't force a pure functional approach. There's a quote in the French O'Reilly book, something like "Write your code in the style that is most natural, and give it a functional interface.". It seems like a good summary of the direction the language design points. (I just think there's a smaller, cleaner language buried inside OCaml...) Being "in between" can sometimes be a major strength.
* In particular, adding typeclasses would nicely resolve several minor annoyances with the languags.
Also, the OCaml community seems more fragmented, so its harder to organize group efforts. Haskell hackathons are happening every 4 months or so, in the US and Europe (we've had 9 in 3 years). I don't know that the OCaml open source community has held any similar kind of event.