What can an Arduino Due do that a Mega 2560 can't? What can a Mega 2560 do that a Due can't? I've heard the Due is 3.3V so it can't work with most shields.
The 'R3' version boards and shields are compatible with 3.3V and 5V. For example the Ethernet Shield V1 version 'R3' can be used with the Due. The new Arduino Ethernet Shield 2 is also compatible with the Due.
Many older shield are not compatible with the Due, but do you really need to use an old shield ?
Most sensors are 3.3V, and also a SD memory card is 3.3V. That is a lot easer with the Arduino Due which runs at 3.3V.
The Arduino Mega 2560 board is the only board with 10k pullup resistors at SDA and SCL, therefor it has a 5V I2C bus. When a 3.3V sensor with I2C is used, you need a I2C level shifter. When a 3.3V with SPI is used, you need more hardware.
The Arduino Mega pins can drive more than 20mA, it can be used to drive 10 leds with 20mA simultaneously, the Arduino Due can't do that.
My suggestion is to use an Arduino Uno for all kind of testing. It's always good to have one lying around. Start with an Arduino Uno if you want to learn programming and have fun with leds and buttons.
The Arduino Zero or MKRzero or M0 have a M0+ processor at 3.3V and they can be used for all kind of nice projects. When you already know a little about programming and electronics, this is a very good choice.
The Arduino Due has more processing power then the M0+.
The Arduino Mega 2560 is still used, because there are many libraries and shields that are compatible with the Arduino Mega 2560.
The Due can do a lot of things much faster. It has more memory and far more processing power. It has more flexible and more powerful built-in peripherals.
It can't easily interface with 5V devices though.
The Mega2560 has less memory and far less processing power, but interfacing with legacy 5V devices is far easier. It's also more forgiving to the novice user than the more complex SAM3X chip.
From an Arduino programming point of view both boards are pretty much programmed the same. The language is, excepting a few esoteric anomalies, largely the same. However when you come to do low-level programming instead if relying on the Arduino API you would find that the ATMega2560 is a much simpler chip to program. Power comes at a price. The more powerful SAM3X chip is much harder to get to grips with and program.
It's like comparing a Ford Escort with a Boeing 737. They're both vehicles, and they can both get you from A to B. The Boeing does it much faster and can carry more people, but flying it is a lot harder than driving a Ford Escort, and you can't fly it on an old-fashioned road.
Ahhhh... There is a more profound problem than these mentioned because the MEGA treats double precision declarations as floating point ( far less precision ). I was working with 1 CM GPS Location coordinates requiring double precision variables. It took a while for me to discover that ONLY the DUE compiles to a true double precision variable. The MEGA and most others do not. They convert double to float at compiler level. This is only meaningful if extremely precise math must occur.