To prevent Bash expansion from passing files starting with “-” you can use:
echo [!-]*
Which works portably in most shells, or, specific to ksh, bash, zsh:
echo !(-*)
For example: in a directory with this files
$ echo *
a b c ---corporate-discount.csv d -e --option.txt
Will list only (provided extglob is active):
$ shopt -s extglob
$ echo !(-*)
a b c d
$ echo [!-]*
a b c d
But if what you want is to process all files while telling grep to avoid interpreting files stated with a - as options, then just add a ./:
grep -r "stuff" ./*
Or, if there is guarantee that no file called exactly - exists in the files listed (grep will interpret a lonely - as read from stdin), you can use:
grep -r -- "stuff" *