Ученые предлагают несколько версий происхождения этого выражения. Первая гипотеза связана с тем, что при волнении, которое сопровождает нежеланное или трудное решение, может учащаться сердцебиение. Человек кладет руку на грудь — и этот жест похож на клятвенный, скрепляющий обещание. Также фразеологизм связывают с тем, что для принятия неприятного решения требуется воля, укрепление духа, внутренняя подготовка. Редакция портала о русском языке «Грамота.ру» отмечает: «Скрепить в этом выражении имеет внутреннюю форму «сделать крепким».
О том, как появился неправильный вариант «скрипя сердцем», писала лингвистка Есения Павлоцки: «Слово «скрепя» устарело. Оно крайне редко встречается в речи носителей языка… Человек… не распознает слово «скрепя»… <…> Вторая причина заключается в неверной трактовке этого фразеологизма: человек делает что-либо против своей воли, а сердце при этом все равно не на месте — «скрипит». Однако такое употребление некорректно и лишает выражение смысла.