Checksums are an early design just to confirm against transit corruption in communication systems and links. This is a quick simple verification that the links are correctly communicating data. You can selectively modify data and keep checksums passing. But that would not happen by accident in transit. So the original purpose of the checksum still works to detect link problems.
Hashes are more robust and designed to add security to detect mailicious manipulation of data in transit. These are security features and constantly evolving as the threat to data access and manipulation increases.