You missed just a little step: pass the output of the find command as argument to grep. You can accomplish this in two ways: using the -exec action of find or piping the results to xargs. The difference is that -exec executes the command once for each file, whereas xargs takes all the files as argument and spawns a single process. Depending on the number of files and the performance required you can choose either one of the following:
Code:
$ find . -mtime -1 -type f -name \*$(date +%Y-%m-%d)\* -exec grep -E -lw 'nuclear|chemical' {} \;
$ find . -mtime -1 -type f -name \*$(date +%Y-%m-%d)\* -print0 | xargs -0 grep -E -lw 'nuclear|chemical'
Regarding the date in the file name, as you can see shell's command substitution is your friend. Please, take a look at man xargs and at the
GNU find manual for details.