The array argument is an array of ints not objects, hence the String.Format(string, obj) overload is called, not String.Format(string, obj[])). Try this instead:
string.Format("{0} {1}", Array.map box [|"abc"; "def"|])
This would be the same in C#, btw. Also note that in F# "sprintf" gives you a properly typed formatted-printing function.
Best regards,
Stephan