Acho que o problema com o OCaml é que ele não é muito útil "pronto para uso". A eventual razão pela qual as pessoas usam uma linguagem é porque ela possui bibliotecas de que precisam. Com nada "pronto para uso", porém, ninguém chega longe o suficiente em um projeto para perceber que eles precisam escrever uma biblioteca. O resultado é uma linguagem sem bibliotecas, o que dificulta a criação de "aplicativos reais".
Eu acho que é disso que o OCaml sofre - ninguém se incomoda em iniciar "projetos reais", porque tudo o que existe é uma linguagem de programação. Sim, posso adicionar dois e dois e imprimir o resultado. O resultado é uma coleção de bibliotecas que são principalmente abandonware acadêmico (o autor obteve seu doutorado e seguiu em frente), o que não é muito útil para a prática de programadores.
(Eu sei que há trabalho em andamento para mudar isso, com projetos como "Baterias incluídas". Volte aqui em cinco anos e talvez o OCaml seja mais popular.)
Existem algumas exceções a esta regra. O Java começou sem bibliotecas, mas a Sun pagou às pessoas para escrevê-las todas em casa e, em seguida, elas venderam o inferno. Certificação Java, hardware específico para Java, livros sobre Java, aulas sobre Java etc. Até convenceram a maioria das universidades a ensiná-lo exclusivamente, mesmo que não seja uma linguagem muito boa para aprender programação.
O resultado foi popularidade. O dinheiro pode resolver muitos problemas.
Na arena da linguagem funcional, podemos ver que Haskell está se tornando bastante popular. Penso que a maior parte da popularidade se deve a pessoas como dons que escrevem bibliotecas úteis e nunca param de comercializar o idioma. Todos os dias você vê alguns artigos da Haskell sobre Programação de Reddit. Isso o mantém preso na mente das pessoas até que elas finalmente decidam: "Vou tentar Haskell". Quando o fazem, veem coisas úteis como estruturas da Web, bancos de dados de objetos, bibliotecas OpenGL e bibliotecas de processamento XML. Isso significa que eles podem realmente fazer algo útil "Right Now". Portanto, entre o potencial de ser produtivo e ouvir muito sobre isso, Haskell ganhou muita popularidade.
O CL tem muitas das mesmas bibliotecas que Haskell e é quase tão rápido, mas ninguém fala sobre isso, então "parece morto". De fato, #lisp é muito mais silencioso que o #haskell, mas o Lisp ainda é uma linguagem muito produtiva com muitas bibliotecas. Nenhum outro idioma possui SLIME. Mas o marketing é muito importante, e Haskell faz isso melhor do que Lisp ou OCaml (e concorre pela mesma base de usuários).
Finalmente, algumas pessoas nunca "obtêm" programação, portanto, quebrar seu modelo mental (variáveis são caixas com valores, o código é executado de cima para baixo) garantirá que eles não usem sua linguagem. Esse tipo de programador é uma grande porcentagem da população de programação, limitando ainda mais a possível base de usuários de linguagens abstratas como Lisp, Haskell e OCaml.