С утрированно практической стороны (пользователя, естественно):
1. Объекты, замыкания есть, функции - значения.
2. Типы указывать не нужно.
3. Сборщик мусора.
4. Более-менее однопоточные.
5. Скорость выполнения байт-кода более-менее одинаковая.
6. Не требуют внешней виртуальной машины JVM/.NET.
7. Есть языковые менеджеры пакетов.
8. Энергичные вычисления, есть побочные эффекты.
9. Изменяемые значения. Семантика - всё boxed (у Питона нет выделенного типа ref, потому там известный ахтунг, конечно).
Отличия - у OCaml'а нет классов типов, поэтому выч. мат код требует некоторых мелких хаков, а вывод структур на консоль - ppx_deriving или т.п.
И я, честно говоря, ничего более близкого к Питону, но компилируемого и достаточно популярного, не вижу.
Да ну не