its almost certainly output from the stderr stream from cvs. try
cvs update -qn 2>&1 | grep "^M "
Personally, I hate throwing away error messages, I would capture that info to a file
cvs update -qn 2>./filesMissingRpt.txt | grep "^M "
I can't test it, but very confident this will solve your problem.
IHTH.