Plus, Times and Power have the Attribute Listable. That means they operate on the elements of a list (or matrix).
So your last example is obtained by
a = {{1, 2}, {3, 4}};
b = {{5, 6}, {7, 8}};
a*b
Out[9]= {{5, 12}, {21, 32}}
But your
In[10]:= {{1, 1}, {0, 1}} * {{3, 1}, {0, 2}}^2 * {{1, -1}, {0, 1}}
Out[10]= {{9, -1}, {0, 4}}
is different fron the correct result
In[11]:= {{1, 1}, {0, 1}}.MatrixPower[{{3, 1}, {0, 2}}, 2].{{1, -1}, {0, 1}}
Out[11]= {{9, 0}, {0, 4}}
And even if you meant to square the elements of the inner matrix the result is still different. So you should well define what you really want to do.
In[14]:= {{1, 1}, {0, 1}}.({{3, 1}, {0, 2}}^2 ) .{{1, -1}, {0, 1}}
Out[14]= {{9, -4}, {0, 4}}