Defragmenting arranges your files in "contiguous" order, thereby allowing retrieval much faster. When you call up a file, open an app, whatever, your HDD searches its platters for that entire file. If it's fragmented, the HDD has to work harder and it takes longer to find the ENTIRE file because it's in fragments located all over the platters.
Consider this analogy. Your HDD is a file cabinet. When you want a file, you go to the files cabinet. At first, the files are arranged in folders in alphabetical order (this "alphabetical order" part is just for this example . . . your HDD actually stores the files in another kind of order). Say you want a file that has a label that begins with an "A". So, you open up the file drawer labeled "A", and you can go right to where the file is.
You put it on you desk (RAM), open it, take some papers out, do what you have to do with them, and go on to another file you have to work on. But you're in a hurry, so you gather up the papers and stuff them back in the folder and put it back in the file cabinet, BUT this time since you're in a hurry, you just put the file any old place where there's room . . . say in the drawer labeled "Z". That file is now "fragmented" because it's not where you can find it fast.
So, the next time you look for that "A" file, it's not going to be in the "A" drawer. You say to yourself, "Where did I put that darn thing?" So now you have to look through drawers 'till you find it.
Defragmenting is like having someone come in and go through that file cabinet and put things back in order so that the next time you look for that file it WILL be in the "A" drawer.
And if files become so fragmented that it's amost impossible to put them back in order, in the analogy that would be if you took some papers out of that folder and then put them back in THE WRONG FOLDER, they may get corrupted. So, you should defragment on a regular basis so that you avoid that happening.