Cetti is absolutely correct, nutty though 'Day-Day' might sound. As a matter of interest, the French refer to it as 'J-Jour' on precisely the same basis, 'jour' of course being their word for 'day'.
The earliest record of the phrase comes from a World War I Field Order - a whole generation before the D-Day of 6th June 1944 in Normandy.
The reason for the code was so that planners could say 'D-Day minus one' to mean the day before the off or 'D-Day plus two' to mean 'Two days after the start' etc. Also, of course, it concealed the actual date from the enemy, as earlier answers say. All-in-all, D-Day both is and means 'Day with a capital D'. It's what we might call today 'The big one!'