Works fine for me using ksh and bash when run from both command line and nohup'ed. What is your shell? if you are using the bourne shell, the "$( )" command substitution syntax is not supported. Use backquotes instead:
if [ `grep -c "My Daddy" processfile.txt` -ne 0 ]
And make sure you test for the existence of processfile.txt first too.
Make sure your script starts with a "shebang", which tells the login shell what shell to use when runnning the script:
The "$( )" command substitution syntax works in bash and is actually preferred over using backquotes as its easier to use if you need to nest commands. I suspect you are really using the bourne shell. What is your shebang line? if its "#!/bin/sh" then its most likely the Bourne shell. Try your original code with "#!/bin/bash" instead.