Strangely enough, it works for me if I switch the order of the greps, e.g.:
alias psgrep="ps ux | grep -v grep | grep $1"
I'm guessing that this is due to some strange way that bash and ksh interpret arguments in aliases, but I can't for the life of me think up why. I guess it's been too long since I've thought about the internals of all this. My suspicion is if you defined this as a function instead of an alias in bash, it should work in the original order, but I haven't tested it.