As the specification states, F# does not support generic variance:
14.5.2 Solving Subtype Constraints
Note: F# generic types do not support covariance or contravariance. That is, although single-dimensional array types in the CLI are effectively covariant, F# treats these types as invariant during constraint solving. Likewise, F# considers CLI delegate types as invariant and ignores any CLI variance type annotations on generic interface types and generic delegate types.
You'll have to cast the elements of the list and create a new one:
let greeters = humans |> List.map (fun h -> h :> IGreeter)