OCaml (or its immediate predecessor[1]) had a multicore implementation, but it was dropped because of its complexity and effect on single-thread performance. The challenge is to add it back in a way that is maintainable and doesn't negatively affect current users.
[1] https://www.researchgate.net/publication/2774662_Concurrent_...
As the sibling comment mentions, the hard part is actually retrofitting multicore whilst maintaining compatibility _and_ performance.
Our paper last year covers most of why this is tricky: https://arxiv.org/abs/2004.11663
What in Ocaml makes this so much harder to implement?