I cannot explain intuition because intuition means arriving at the correct answer without knowing why.

I can, however, give you a simple example that will spur your understanding (which, frankly, is a lot better than intuition).

Suppose that the 1-year spot rate today, *s*_{1,0}, is 1% and the 2-year spot rate today, *s*_{2,0}, is 2%. (I’m using the “,0” in the subscript to emphasize that this is a spot rate when we’re at time *t* = 0. In a moment we’ll need the 1-year spot rate when we’re at time *t* = 1, and I don’t want y’all to confuse the two.) Then the 1-year forward rate starting one year from today, _{1}*f*_{1}, is calculated as:

(1 + *s*_{1,0})(1 + _{1}*f*_{1}) = (1 + *s*_{2,0})^{2}

(1 + _{1}*f*_{1}) = (1 + *s*_{2,0})^{2} / (1 + *s*_{1,0})

_{1}*f*_{1} = (1 + *s*_{2,0})^{2} / (1 + *s*_{1,0}) − 1 = 1.02^{2} / 1.01 − 1 = 3.0099%

Let’s say that you have a 2-year, annual-pay, $1,000 par bond with a 3% coupon rate. The value today is:

V_{0} = $30 / (1 + *s*_{1,0}) + $1,030 / **(1 + s**_{1,0})(1 + _{1}*f*_{1}) = $30 / 1.01 + $1,030 / (1.01)(1.030099)

= [$30 + $1,030 / 1.030099] / 1.01

In one year, the value (including the coupon payment you just received) will be:

V_{1} = $30 + $1,030 / (1 + *s*_{1,1})

If interest rates evolve according to the forward curve, then *s*_{1,1} = _{1}*f*_{1} =3.0099%, so,

V_{1} = $30 + $1,030 / 1.03009

So,

V_{1} / V_{0} = [$30 + $1,030 / 1.03009] / {[$30 + $1,030 / 1.030099] / 1.01}

= {[$30 + $1,030 / 1.03009] / [$30 + $1,030 / 1.03009]} × 1.01

= 1.01

= 1 + *s*_{1,0}

For bonds with more than 2 periods till maturity, the same sort of thing happens.