Torn Page Detection writes a bit for every 512 bytes in the page. This allows you to detect when a page was not successfully written to disk, but does not tell you if the data stored in those 512 bytes is actually correct as a couple of bytes may have been written incorrectly.
Checksum, on the other hand, calculates a checksum value as the final thing before passing it to the IO system to be written to disk. This guarantees that SQL Server had no part in corrupting the page. When SQL Server reads it back, if a single bit is different, it will be caught, and a checksum error (824) will be generated.
Torn Page Detection is the more lightweight of the two, but Checksum is safer, and its overhead is still small enough that it's the better option.
5 People are following this question.