1. Even if you don't short-stroke the drive, filesystems are designed knowing that HDDs are faster on the outer tracks. So they try to fill those tracks first (especially important since the OS is one of the first things written to the drive). As the drive fills up, most of the new files are written to the inner tracks, and thus reading and writing them is slower.
2. As the drive fills up, the empty space becomes increasingly broken up and scattered (files are written with a little empty space at the end in case you edit the file and make it longer in the future). As it becomes harder to find enough contiguous space to write a file, the newer files become more and more fragmented, which drastically slows down their read/write speeds. Modern OSes combat this by running defragmenters during idle time. But as the free space drops below 25%, defragmenters become less and less effective (they have to move files multiple times to make enough free space to write them as continuous blocks).