This is because of how you can program the pasteboard on Mac OS X.
Text editors expect the pasteboard to contain, well, text data. There are however several kinds of text: there's plain text, there's formatted (RTF) text, there's formatted text with embedded documents (RTFD), there's HTML-formatted text, and a bunch of others.
When you copy something, the application tells the pasteboard how this data can be represented. There are usually several suitable representations: for instance, copying your question exports data in the pasteboard that can be represented as a web archive, RTF data, and plain text in three different encodings. Plenty of types that applications are likely to support.
However, when you copy a mail from Mail, it exports only as two types of data: plain UTF-8 text and a RTFD document. Cocoa tries to paste as an RTFD document because it likes them better, but applications say "no no, I can't do that"; they usually support getting text from RTF, but not from RTFD since RTFD usually has embedded resources such as images, and you end up pasting nothing because the apps don't bother to look for the plain text data.
TextEdit, on its side, is able to edit RTFD documents, so it has no problem pasting the data.
Text is copied in rich form in iOS 3+.
You can try it by copying some text in Safari and pasting it to Mail.
But pasted text format will depend of the app. For example, the SimpleNote app only paste in plain text format, since the service doesn't not support image and text styling.
There is no native way to see the copied text in HTML form. You'll have to find an app to do that.
Best Answer
In Mail on iOS 12, I use the "Share > Copy" trick:
Still (too) many hoops to jump through but at least you don't need to switch between apps. The "Share > Copy" trick might not be available in other apps, though.