Вы путаете серверный JavaScript в вашем EJS с клиентским JavaScript, который вы генерируете из него.
Синтаксис строки вне тегов EJS не имеет отношения к JS внутри него, и используемая вами переменная должна быть объявлена в том же программном обеспечении, что и вы.
<% let author = "Shakespeare"; %>
let book = "<%= bookObj[author] %>"
Конечно, если вывод содержит специальные символы, он сломается, поэтому вам лучше генерировать литералы JS, используя кодировщик JSON:
<% let author = "Shakespeare"; %>
let book = <%- JSON.stringify(bookObj[author]) %>;
См. Также В чем разница между программированием на стороне клиента и на стороне сервера?