So what's the point then, if they both detect such small errors?
What CRC* can't do and SHA* and some MD* can, is that the latter are usually strong enough to prevent any supercomputer from creating 2 different files with the hash digest, where as CRC* don't have such strength.
CRC* are good at detecting "wire noise" errors, but otherwise lacking certain strength required in cryptography.
(from comments) so if I understand correctly, the purpose of CRC is to let you KNOW that there's an error, and SHA* MD* etc. Are specifically designed to have different hashes?
Somewhat correct, CRC* can let you know "wire noise" errors, but not man-in-the-middle sabotage; SHA* and MD* are specifically designed to be "collision resistant", which means any "humanly-possibly" supercomputer cannot create 2 different files with the same hash digest.
A bit of background
CRC is invented by W. Wesley Peterson in 1961 according to Wikipedia. Hash function was (as I believe) first described (as one-way hash function) in "Security, Authentication, and Public Key Systems" by Ralph C. Merkle, in 1979