You need to use xargs to turn standard input into arguments for rm.
$ ls | grep '^Dar' | xargs rm (Beware of special characters in filenames; with GNU grep, you might prefer
$ ls | grep -Z '^Dar' | xargs -0 rm )
Also, if you're using bash, you can make it handle that kind of pattern directly, although itwhile the shell doesn't supportuse regexps as such, that's a simple pattern:
$ shopt -s extglob; rm !(Dar*) (meanwhile, I think I need more sleep.)