D'oh, the /C switch doesn't seem to be the reason. The command line given in the question actually works, at least for the input I provided. I've just launched it successfully at least once on Windows 7 x64. The other time, it failed (the command returned no output).
I'm sorry I upvoted your answers too early... two similar replies convinced me that the /C option was wrong...
EDIT: I've finally found it: the input file came from a tool that was adding lines with Windows-like line breaks. While the file was generated, it invoked external cygwin tool that was writing to the same file but with Unix-like line breaks. That's why FINDSTR was giving inconsistent result with this file along with "$" regex that didn't matched all lines it should.