This does not work. The arguments to `del` get appended at the end, after `find`. You want this:
del() { mv "$@" ~/.Trash/ && find ~/.Trash -mtime +30 -delete }
I also replaced the unnecessary exec by find's builtin -delete