Add Cygwin to the list...
rml@yosemite:z:442> zgrep --version
zgrep (gzip) 1.4

rml@yosemite:tmp:432> mkdir z
rml@yosemite:tmp:433> cd z
rml@yosemite:z:434> echo foo>a
rml@yosemite:z:435> echo foo | gzip -c >b
rml@yosemite:z:436> echo bar>c
rml@yosemite:z:437> zgrep foo *
a:foo
b:foo
rml@yosemite:z:438> zgrep -h foo *
a:foo
b:foo
rml@yosemite:z:439> uname -a
CYGWIN_NT-6.1-WOW64 yosemite 1.7.29(0.272/5/3) 2014-04-07 13:44 i686 Cygwin


On 5/16/2014 6:09 PM, Paul Eggert wrote:
Robert M. Lawhead wrote:
% gzgrep --version
gzgrep (gzip) 1.4

Wow, that's old.  I recall fixing that bug some time ago in the GNU sources.  I can't reproduce the problem on the oldest Solaris box I have easy access to:

$ echo foo >a
$ echo foo >b
$ echo bar >c
$ gzgrep foo *
a:foo
b:foo
$ gzgrep -h foo *
foo
foo
$ uname -srvmpi
SunOS 5.10 Generic_147440-19 sun4u sparc SUNW,Sun-Fire-280R
$ gzgrep --version | sed 1q
gzgrep (gzip) 1.5

My guess is that you need to bring your Solaris machine up-to-date, by installing the usual patches from Oracle.  Probably should be doing that anyway, as unpatched machines can be dangerous.