Hi Convexity,
Hull gives two reasons, however (as i say in the tutorials) I really only ever encounter one of his reasons: the futures contract is marked-to-market daily and this (i) creates a more volatile contract price relative to the equivalent forward contract (more volatile = slightly more risky) and, more importantly, (ii) assuming an exchange-traded future with a margin account, this implies cash flow volatility: either a margin call (cash flow out of pocket) or excess margin that can be withdrawn (cash flow into pocket).
So the futures contract implies a bit of cash flow volatility “at the margin.” So IMO the essential focused difference is: daily settlement (futures are; forward aren’t)
Hull points out the cash flows are invested asymmetrically in the case of a Eurodollar futures contract (i.e., as rates go higher, margin account is flush and the extra cash is invested at a higher rate; as rates go lower, the margin call is funded at lower rates). Such that the futures price > forward price due the advantage of M2M…
...and this is consistent with the Eurodollar futures rate >> forward rate. In the case of the Eurodollar futures rate, I find it easier to just think “the futures is riskier so the rate must be higher.”
FWIW, brief video here @ http://www.bionicturtle.com/learn/article/convexity_adjustment_for_eurodollar_futures_and_fra_5_min_screencast/
Hope that