Thanks Gianluca…it seems actually related to the levels of the expression the Map function is applied to.
By default Map[f,expr] is equivalent to Map[f,expr,{1}]. which explains Map[f,a+b,{1}] = a^+b^2.
Try with
Table[Map[Function[x, x^2], a + b, {n}], {n, 0, 1}] and see the result
However it is not clear why /@ does not get the same result (it seems applied to an higher level of the expression a+b)
tries to map a function to a level that does not exist. The designers decided that this mapping just does nothing and keeps silent. It might have given an error message or at least a warning.