Because the most recent rating of a player is (typically) the most accurate. So the most accurate rating of the player is the one after you beat him.
"Highest Win"?
With the glicko rating system they have in place here at chess.com, huge jumps and drops in rating, even after only one win or loss are fairly common. Especially among those who do not finish games often. So if you were to beat say a 2200 that dropped down to 1900 after his loss to you, it's can be assumed he wasn't really a 2200 in the first place. The second rating in most cases is closer to the correct one. It really is the most statistically accurate way to do things. On other sites that instead use the ELO system, recording the final rating of your opponent for your "highest rating beaten" isn't necessary because wide fluctuations in rating aren't possible after one game (outside of the early provisional stages).
In the box that shows "highest win" on my online chess profile, it shows the rating of my highest-rated opponent after I beat him and he lost points. Why doesn't it show the rating he had when I beat him?
Thanks,
threat_of_mate