Não, você não pode transmitir argumentos para um alias. Mas você pode definir uma função:
compile() {
clang -ggdb -std=c99 -Wall -Werror .c -lcrypt -lcs50 -lm -o ;
}
(você pode colocar tudo em uma linha, se desejar, apenas preste atenção ao ponto-e-vírgula no final do comando)
Isso funcionará como pretendido e é o idioma recomendado que deve substituir os aliases para todos os fins, exceto os triviais.
Mas talvez o que você realmente precise seja de um Makefile?