Es muy facil, estas borrando un fichero en un directorio, y no estas 'posicionado' en el directorio, o dicho de otra forma, no estas pasando a unlink el path completo de lo que quieres borrar.
Create una variable auxiliar y une argv[1] con dp->d_name.
sprintf(aux,"%s/%s",argv[1],dp->d_name);
unlink(aux);
Espero que te sirva de ayuda
Saludos.