Find produces a list of files. If you pipe that list into grep, it will identify file names
which match the pattern passed to grep as an argument.
If you want to search inside the files, use xargs to pass the listed file names to grep as extra arguments. This way grep will search inside these files.
If you use the -print0 option to find and the -0 option to xargs, file names will be delimited with the ASCII NUL character, avoiding problems with file names containing whitespace.
find . -name '*.doc' -type f -print0 | xargs -0 grep -li "Hesketh"
The "-type f" tells find to only locate files (not directories). I also quoted the pattern '*.doc' to prevent it being pre-expanded by the shell in the case where there are one or more files matching that glob pattern in the present working directory.