The standard option
grep -l (that is a lowercase L) could do this.
From the Unix standard:
-l (The letter ell.) Write only the names of files containing selected lines to standard output. Pathnames are written once per file searched. If the standard input is searched, a pathname of (standard input) will be written, in the POSIX locale. In other locales, standard input may be replaced by something more appropriate in those locales.
You also do not need
-H in this case.