Fish and cheese: An unbreakable rule?
Disagree with the umami analysis from @Carmi, even if it was a good attempt.  You have some basic facts wrong though.


Cooked tomato sauce is high in umami, and is often combined with mushrooms, however, a sauce with mushrooms would not take parmigiano (also extremely high in umami)
Mozarella is high in umami, like most fresh young cheeses.  So is tuna.
Caesar salad has both anchovies and parmigiano (both high in umami).


But you are sort of on the right track.  Baked fish in Italy is not strong in flavor. It's delicate and calls for the following: fresh lemon.  That's it. Maybe some fresh parsley.  Usually cooked with no herbs and served with no sauce.  The fish should be extremely fresh and appreciated for it's delicate flavor.  Something like parmigiano would easily overpower the taste of the fresh fish and by putting it on fish you are telling the cook "this is fish gone bad and I need to cover the taste with something". Or if it was served that way, maybe better to avoid it because what is the cook trying to hide?  While there I never encountered a fish dish served with cheese.

Being a curious foodie and having lived in Italy for 5 years, I can also add the following:


There are a LOT of rules that might seem strange to an outsider. No cappuccino after 10am.  You don't mix salty and sweet in the same dish, or even during the same course.  Beer with pizza, not wine. You would never drink coffee before or during desert, it's served after.
While I was there I did a lot of thinking about the basis of some of these rules and concluded it's usually either 1) health, 2) taste, or 3) regional cultural rules.
I asked the fish and cheese question a few times.  The answer was always "That's gross, you just don't put cheese on fish".  My guess is this one falls under 2 and 3.


The health angle from @Walter I think has a lot of validity in general.  Italians often complain of their liver hurting after eating especially 'heavy' meals. Heavy meaning something very specific in Italian: difficult to digest.  So a fresh salad with too much raw garlic could be considered heavy because garlic sometimes causes indigestion.  A huge chunk of parmigiano is not considered heavy because parmigiano is very digestable.  My guess is some of the rules come out of the particulars of the Italian digestive system.  Much like you will not find many Asians joining me when I chug my glass of milk.