The problem appears to be that the z*grep wrappers don't handle arguments which have multiple tokens. In other words, something like '-i' works, but '-B 10' does not, since it can't distinguish that '10' is part of the '-B' argument and not part of a pattern or filename. If you can skip the space, as in '-B10', all is well, but that's not a good general solution.
I don't see any easy way to fix this, short of trying to replicate and then track the options parser in grep. I'll forward this on to the upstream maintainer of gzip, since the script in question is part of the upstream package. Bdale