Update: the root of the problem is that
SERVER-36530 was not backported to v4.0 or v3.6 so the fuzzer invocations look different on those branches vs master. The bug with dynamically generated fuzzer tasks is still valid but is not the final form of the problem. The dynamically generate fuzzer task commands backport to v4.0 added an extra argument that exists only on master and not 4.0. This was caught in SERVER-40922 when the command line parsing library was upgraded to a newer version that no longer accepts duplicate arguments.