Easiest is to invoke the external grep program using shell-command:
(defun my/grep-p (search-string file)
(= 0 (shell-command (format "grep -s -q \'%s\' \"%s\"" search-string file))
grep -s -q is silent and only returns status: 0 if found, 1 if not found, 2 if there is an error. So the function acts as a predicate: it returns t if the string is found in the file, nil otherwise. The function adds single quotes around the search pattern to protect it from globbing and other such shell transformations and double quotes around the file name to protect it in case it contains spaces: that's not complete protection but it will take care of most cases.
This function can be used in Lisp programs, but not interactively. Interactively, I would just call shell-command with M-! and give it the command grep -s -q <pattern> <file> explicitly, then check the status in the echo area.