It likely originated in rhyming slang where words that rhyme are used as replacement[0]. It isn't the only example in nick names. Bill is a nickname for William and Bob is a nickname for Robert.
The nickname for John is Jack, actually. Jack and Dick both belong to a class of nicknames that all end in "ck" or "k" sounds, but for which the original doesn't have a k sound.
The standard of counting as "Tiffany" is strange. He's not happy with Θεοφανώ or Theophania, but he's perfectly happy to count (French) Tiphaine, Thifaine, Thiephaine, and (English) Tephany as being "obviously" the modern name. But the difference between Tephany and Theophania is down to the "Th" at the beginning. Why agonize over the difference between the very well-attested Greek Theophania and modern Tiffany if it's so clear that medieval Tephany matches the modern form? It's a better match for the Greek form!
It's like if another name for John was Frank. It makes zero sense.