Buddy and friend have very similar meanings, and as others have said, buddy is more informal. Generally speaking, we'd use friend more frequently.
Friend can also be used for people who are complete strangers, for example;
"I have 5,000 friends on Facebook" or when writing a marketing letter, "Dear friend" instead of "To whom it may concern.
Buddy is used in the workplace; new employees are assigned a buddy to train them, or in some extreme sports for the person you "buddy" up with. In this case, your buddy makes sure you don't do anything wrong, and will call for help if you do.
"Buddy" literally means "brother." It is an imitation of the way a toddler might say the word "brother" when he is learning to speak. It therefore means "a very close friend who is almost like a brother," and is more often used about men than women.
It also carries the sense of "inseparable close companion." Thus in the U.S., when swimming in a pool, children are told to use the "buddy system," to group in pairs and always swim next to their "buddy.
Since it means "very close friend," "buddy" or "bud" can be used ironically in reverse for anyone whose name you don't know. A policeman might say "Hey, bud, get your car out of there now, you can't park there."
The use of "buddy" varies regionally and among groups. I can't really pin it down except to say I don't use it much myself--and I think it's outdated, I think of it as more common in the past.
I agree that buddy is used more in the US while mate is used more outside of North America. One thing I'll add though is that if you're speaking to the person directly it sounds a lot more natural to use the word buddy than friend. In other words, "what's up buddy?" (in this case you can also shorten it to "bud") sounds more natural than "what's up friend?" in American English.
I agree that it's used ironically sometimes and that it's used more between male friends. I disagree completely about it being outdated though. I think that it's more of a question of region, even what region within the US that you're in. In my opinion, except when used ironically, if you use the word buddy you're showing a certain level of approval of the other person.
There's no difference they both mean the same thing. Buddy is more of an American expression.