From the trek wiki:
'The nickname "Bones" is explained in the alternate reality as referring to that universe's McCoy describing his divorce to Kirk at their first meeting, his ex-wife having left him with only his bones as a result of the settlement.'
And for the original verse -
'Bones is short for "sawbones," also used by Kirk in "A Piece of the Action", an ancient description for a surgeon.'
...and from wikipedia:
The character's nickname, "Bones", is a play onsawbones, an epithet for physicians.
that is true but it also referred to a planet wide tragety which occured before he went to the academy. Don't get me wrong I totally agree with all the person above has said reference-wise. But in the Original Series the planet-wide epidemic was the reason for McCoy's nickname being bones.
In Star Trek, Kirk's nickname for Doctor Leonard McCoy was "Bones".
The nickname "Bones" is given to Doctor Lenard McCoy - Star Trek (Original Series).
The idea of that line was thought to have been originated by the actor Deforest Kelly who played Dr Leonard 'Bones' McCoy
Original Dr McCoy: DeForest Kelley Reboot Dr McCoy: Karl Urban
In the new movie Dr. McCoy is assigned to the Enterprise three years after he joins Starfleet as a recruit. The new movie is set in an alternate reality, though, so other information on McCoy may be found elsewhere. In the original timeline, Dr. McCoy joined the crew at least several months after Kirk took command. (The first episode filmed with Kirk as captain, "Where No Man Has Gone Before," has Dr. Mark Piper as the chief medical officer. It is possible that McCoy was stationed at Capella IV during this time.)
In Star Trek, Kirk's nickname for Doctor Leonard McCoy was "Bones".
Star Trek: The Motion Picture.
The nickname "Bones" is given to Doctor Lenard McCoy - Star Trek (Original Series).
The idea of that line was thought to have been originated by the actor Deforest Kelly who played Dr Leonard 'Bones' McCoy
The Beast , from Marvel , is named Dr. Henry Philip "Hank" McCoy .
Dr. McCoy
Original Dr McCoy: DeForest Kelley Reboot Dr McCoy: Karl Urban
McCoy called Kirk "Jim". Kirk called McCoy "Bones"
Nancy Crater's nickname for Dr. Leonard McCoy was "Plum".
Emily Deschanel plays Dr. Temperance Brennen, David Boreanaz's character Seeley Booth (Booth) gave her the nickname Bones..
Bones
The first doctor abord the USS Enterprise was called "Dr. Leonard H. McCoy" and was played by DeForest Kelly. By the way, his nickname was "Bones". :-)