"UART"に共通の規格はありませんが、IC(マイコン)毎の規格はあって、それを読むことになります。
Arduino Megaならこれの355ページにVIH(入力を確実にHとみなす電圧)は5V電源の場合0.6Vcc=0.6*5V=3.0Vとあります。また、VOH(出力電圧)はVCC5Vで20mA流したとき4.2Vが最低出てくることになっています。
一方Arduino Dueならここの1378ページにAbsolute Maximum Rating(絶対最大定格:少しでも、一瞬でも超えれば製品の性能・動作を保証しない値)があって、ピン入力電圧は4.0Vとなっています。また、VOH(出力電圧)は1379ページに、ほとんど電流を流さない場合VDDIO-0.2Vを保証されています。VDDIOはArduino Dueでは3.3Vでつまり3.1V以上は出る、ということ。
つまり、3.3V電源のDueのTx->5V電源のMegaのRxの接続は、DueがHで最低3.1Vを出力してMegaは3.0V以上をHとみなすのでHをちゃんと認識できます(Lはいうまでもなく)から、接続可能です。
(世の中にはVIHの最低が0.7*Vccやもっと高い値のIC/マイコンもあります)
一方、MegaのTx->DueのRxは、Megaは最低でも4.2Vを出すのでこれはDueが壊れても文句を言えない電圧なので「つないではいけない」ということになります。
まぁ、アマチュアレベルで壊れてもいいから少しでも動いてくれれば、というのなら、多分数キロΩの抵抗を介してつなげば実力的には「なかなか壊れない」ぐらいにはなるとでしょうが...少なくともこころあるプロなら自分では絶対やらないし他人にも薦めないですね。
しっかりつなぐなら、レベルコンバータとかレベルシフタというロジックレベルの変換器を介してつなぐ、低速(MHzには至らないくらい)でそこそこでいいならおよそ5Vの出力を2:3に抵抗分圧して入力に繋げば、少なくともそれが原因で壊れることはない、ということにはなります。