This is a common word with a strange genesis, arising out of an old legal abbreviation, compounded by popular etymology.
When England was conquered by the Normans at the Battle of Hastings, French became the language of the law. It remained in use among lawyers even after the language of the courts changed to English in the fourteenth century, latterly in a stylised and degenerate form called law French. Fragments of law French survive even to this day in parliamentary proceedings. Culprit is another survivor.
The records are sparse, but the usual explanation goes like this: if a prisoner in a medieval court pleaded not guilty to the charge, the prosecutor would respond with the words, Culpable: prest d’averrer nostre bille, which may loosely be translated as “We believe him to be guilty and I am ready to prove the charge”. This was recorded in the court rolls as cul prest or cul prist.
The two key words are culpable and prest. The former remains in English in the sense “deserving of blame”, ultimately from Latin culpa, blame or fault. Prest is Anglo-Norman, meaning “ready”, which survived in English until the eighteenth century, but which has become prêt in modern French (as in prêt à manger, ready to eat, or prêt à porter, ready to wear).
The abbreviation cul prest became modified down the years and was somehow misunderstood very late on in the history of law French to be the way that the accused was to be addressed. It turns up first in the record of the trial in 1678 of the Earl of Pembroke for murder; he was asked: “Culprit, how will you be tried?”
Culprit became part of the language in the sense of the accused person. During the following century people came to believe that it meant a guilty person, perhaps in part because of a confusion with culpa.