Because GetStaticMethod returns dynamic method it will always have some limitations with respect to the signature of the emitted method. In your case the FastInvoker builder treats the compile time array argument as a two separate runtime string arguments. The solution is simple. Pass the input parameters as an Object nut not an array:
instead "string[] args = new string[] { "Hey", "World" };"
use "object args = new string[] { "Hey", "World" };"
This will work. But keep in mind that GetStaticMetghod (based on the FastInvoker) in some cases may not be the best choice of the script invocation model. Also consider using interfaces.
Cheers,
Oleg Shilo