Making mathematical sense of the expression for realized bond return
The approximation given is off at a key point - it is the duration of the bond at 9 years maturity, not the original duration.

The approximation works in two steps.


If the yield is unchanged over one year, the total return over the year is roughly equal to the starting yield.
If the yield changes, we add a capital gain/loss which is equal to the change in yields times the yield sensitivity. This is the modified duration of the bond, at 9 years maturity.


This approximation ignores the reinvestment of any coupon income, and the convexity effect (the return sensitivity changes slightly as yields change). Also, the bond yield convention is probably different than the convention used for total return. That said, for yield changes under 50 basis points, the approximation is typically pretty good.