Is there a nuance 今天早晨 conveys that 今天早上 does not?
As pointed out by xiaohouzi79, 晨 actually carries the meaning of sunrise, hence implying early morning. However this indication is weak, especially when you contrast 早晨 and 早上。

However 早上 would cover the entire morning, say, from 6am to 11:59am. Therefore in a way, it is less specific.

If we want to refer to extremely early morning, before dawn, say 3am to 6am. We sometimes use the word 清晨 and if we are talking about "morning" as in "after midnight" (00:01 to 3am for example) we usually use the word 凌晨 .

So after sunrise, we usually just say 早上 , since that time period is not close to 晨 (sunrise) anymore.