Потому что его тип проверки почти зависит от классической строгой реконструкции типов. В вашем примере требуется приведение типов, что возможно с помощью неявных приведений или слабой системы типов, но они не допускаются при выводе такого типа.
Так как F # происходит от OCaml, он имеет реконструкцию типов, которая пытается гарантировать правильность вашей программы, будучи чрезвычайно педантичной: алгоритм пытается объединить все типы вашей программы с хорошей типизацией, и это не может сделать, если правило слабого типа позволяет рассматривать целое число как число с плавающей точкой.