Hi Marvin,
The reason is that Show takes PlotRange from its first argument (Histogram) and you will notice that the second argument (ListLinePlot) has a very different PlotRange. Why???
Because, unexpectedly, MovingAverage performs a unit conversion from Celcius to Kelvin.
MovingAverage[{Quantity[22, "DegreesCelsius"], Quantity[24, "DegreesCelsius"]}, 2]
(* {Quantity[5923/20, "Kelvins"]} *)
To get the plots to overlay correctly, convert back to Celsius.
Show[Histogram[data, Automatic, "PDF"],
ListLinePlot[
Transpose[
MapAt[UnitConvert[MovingAverage[#, 2], "DegreesCelcius"] &,
HistogramList[data, Automatic, "PDF"], 1]], PlotMarkers -> All]]
This looks like a bug to me, or at least unexpected, undocumented (as far as I can tell) and can result in unexpected errors. You should report it to Wolfram Support.