Deviations from the Standard
double is only 32 bits wide and implemented in the same way as float
when writing code for ATMega based boards ...
They are the same, therefore.
(Edited to add)
When writing code, is it then preferable to using one over the other?
I don't really understand your question. You asked about writing code for the ATMega based boards. Do you really mean, if you are writing code for the Due? The quick answer would be, on the Due, double takes twice the RAM, however it is over twice as precise - around 7.2 decimal digits for float compared to 15.9 for double. (I'm not sure about the speed, probably double would be slower, unless it is implemented in floating-point hardware - however I cannot see any reference to that on the AT91SAM3X8E datasheet).
If you want more precision (however slower and taking more RAM) then you could use
double - which won't make any difference on the ATmega based boards, but will on the Due.
As Edgar Bonet said:
I would use float so that anyone reading my code, who may not know about the non-standard AVR double, knows what precision to expect.
That makes quite a bit of sense.
I warn you though that "preferable" is subjective. It is close to asking "what is best"? To which the reply is: "best for what?"