Why are potentials of cells with magnesium electrode always lower than expected?
At least one significant reason is that the voltage you "expect" is probably for a standard state of one mole per liter of $\ce{H+}$, i.e. at pH 0.  Neither the magnesium acetate nor the plain (tap?) water you used for the experiments come close to this pH. Also, the standard state for $\ce{H2}$ would be one bar of atmospheric pressure.  Probably this condition was not achieved either. 

You can calculate the expected potential at any pH using the Nernst Equation.

The half-cell reactions in your system are


$\ce{Mg^0 -&gt; +2e- +Mg^{+2}}$ (this has a potential of 2.372 V not 2.7 V as a mistakenly wrote in a prev. version of this answer)
$\ce{2H^+ +2e- -&gt; H2}$


The total reaction is thus $\ce{Mg^0 +2H+ -&gt; Mg^{+2} + H2}$

So applying the Nernst equation to a one molar magnesium solution at pH 7 (i.e. $\ce{H+}$ concentrations of $10^{-7}$ mol/L) would give:


$E_\text{cell} = E^{\ominus}_\text{cell} - \frac{RT}{zF} \ln Q$
$E_\text{cell} = 2.4 \text{ V} - \frac{RT}{zF} \ln \frac{1}{(10^{-7})^2 }$
$E_\text{cell} = 2.4 \text{ V} - 0.41 \text{ V} = 1.9 \text{ V}$


Obviously, this correction gives you a predicted voltage that is still higher than what you measure closer what you measured.  But you reported using acid and getting a higher potential, so it's clear that the pH effect matters for your system.  But something else must be going on too.  Some other possibilities for other minor effects that tweak the voltage a bit more:


Hydrogen partial pressure is unaccounted for
overpotential
your cell is not open but is conducting current
dirty electrodes etc.
other unaccounted for electrochemical reactions (copper oxidation, etc.)