Hardware encryption like on a HDD the instructions are built into the hard drive/ at the hardware level, making encryption seamless and incredibly fast - virtually no performance hit.
With software encryption the instruction are handled by the CPU, and the reads/writes to the drive are going to be slower. You can have instruction sets like AES-IS on the CPU to speed up the decryption/encryption process, but the reads/writes to the disk will bottleneck.
Software can be corrupted or negated; hardware cannot. Software runs under an operating system that is vulnerable to viruses and other attacks. An operating system, by definition, provides open access to applications and thus exposes these access points to improper use. Hardware-based security can more effectively restrict access from the outside, especially to unauthorized use.