Você só pode criar hard links entre arquivos no mesmo sistema de arquivos, enquanto links simbólicos podem apontar para absolutamente qualquer coisa (incluindo coisas que não existem de todo).
Além disso, você não pode criar diretórios de hard link no Linux, mas você pode fazer isso com links simbólicos.
Há um caso de canto: você só pode ter até um determinado número de links físicos para um determinado "arquivo". Não sabe os limites exatos (provavelmente dependentes do sistema de arquivos). Não existe tal restrição em quantos symlinks apontam para um nome dado.