Согласно толковому словарю, глагол стучаться имеет значения «ударяться, стукаться обо что-либо» и «ударять (в дверь, окно и т. п.), стуком выражая просьбу впустить куда-л. или вызвать хозяев».
Значение «сильно биться, пульсировать» есть только у глагола стучать. Поэтому, действительно, верно: сердца стучат.
Стилистически сочетание, конечно, неудачное. Отметим, что такие вопросы возникают не только у Вас. Вот мнение известного писателя Ю. М. Полякова, главного редактора «Литературной газеты»: Просто некому теперь объяснить автору, что сердца всё-таки «стучат», а не «звучат», что если свобода «заставляет», то это очень подозрительная свобода, ведь именно «тоталитарные режимы» «заставляют в унисон звучать сердца», а свобода как раз предполагает вполне самостоятельные ритмы сердечных мышц. (из статьи «Песней по жизни»).