Unix dd takes if= and of= instead of flags because its syntax was borrowed from IBM mainframe job control
Dennis Ritchie said dd was always named for the JCL DD card, which is why one command in the toolbox looks nothing like the others.

Type dd if=disk.img of=/dev/sdb bs=4M and you are writing a line of 1960s mainframe job control that wandered into a Unix terminal. Nothing else in the toolbox looks like it, and anyone who learned Unix from a book of dash flags runs into the wall on day one. cp, ls, tar and grep all take dashes. dd takes option=value pairs, as if each were a card in a deck.
In 2004, someone on the alt.folklore.computers newsgroup asked whether dd was originally “copy and convert,” renamed because cc was taken by the C compiler. Dennis Ritchie answered the same evening, in four lines. “Spurious. dd was always named after JCL dd cards.” He added the nearest real story: the original Bourne shell’s do was closed by od, borrowed from Algol 68, “where by popular demand od was replaced by ‘done’.”
In JCL, a DD statement is a “data definition”: it tells a job which dataset to attach to which name. Another reader in that thread, Andrew McLaren, said the if=, of= and bs= parameters “retain some of the characteristic syntactic idioms of JCL.” Wikipedia dates dd to Version 5 Unix in 1974 and credits Ken Thompson as its original author.
Eric Raymond’s Jargon File entry takes a harder line. Wikipedia reports him calling the interface “clearly a prank,” because dd looks more like a JCL statement than anything else in Unix. That is Raymond’s opinion, relayed second-hand here, and not a record of anyone’s intent.
Wikipedia also quotes Douglas McIlroy’s 1987 Research Unix reader on what the command was for: it was “originally intended for converting files between the ASCII, little-endian, byte-stream world of DEC computers” and the very different world of IBM, with EBCDIC text and blocked records. A tool built to translate between two computing cultures borrowed one culture’s syntax.
It outlived both of those worlds, and the EBCDIC tapes it was written to read are long gone from most desks. Today dd is best known for writing disk images to USB sticks, and for erasing the wrong disk when the two operands get swapped. Wikipedia notes that Plan 9’s dd, from 1995, went back to ordinary command-line options. Nobody else followed.
What nobody on record explains is why the syntax stayed put while the rest of Unix filled up with dashes.
My money says dd keeps its syntax forever. Rewriting it would break every install script and forum answer written since 1974, and a prank that old has become a standard.
Four lines settled it.