Is this meaning to grep for a double hyphen from standard in, or to mark the start of positional arguments and then grep for a hyphen? If you want both, it should be:
$ python -m this | grep -- -- -
Which is just beautiful
(Your example causes the last hyphen to be grepped for, which happens to only match doubled-up ones because single ones don't occur in that text. The quotes/apostrophes do nothing because they're parsed by (ba)sh and so only the hyphens are passed to grep, not the quotes. The last hyphen can be omitted because reading from stdin is the default if neither filenames nor recursion options are passed.)
Oh, of course simply quoting it doesn't disable the special meaning of --, because quoting is handled by the shell and argument parsing is handled by the program.