Sorry fürs Ausgraben, aber das hier ist das Top-Ergebnis bei der Google-Suche nach „shopware 5 modal tpl laden“. Vielleicht hilft es ja noch jemandem, der wie wir noch mit Version 5 unterwegs ist.
Wie hier schon richtig vermutet, muss man den Content escapen.
Habe das Ganze jetzt so gelöst:
{include file="frontend/detail/content/popup.tpl" assign="modalContentTpl"}
{$popupData = 'foobar'}
<div data-modalBox="true" data-targetSelector="#openModal" data-content="{$modalContentTpl|escape}">
<div id="openModal">Popup öffnen</div>
</div>
So kann ich Variablen aus dem Template, in dem dieser Schnipsel steht, auch im inkludierten Template verwenden (im Beispiel $popupData).
Dass ich den Inhalt der tpl-Datei in eine Variable ($modalContentTpl) gepackt habe, hat den einfachen Grund, dass es mir sonst in VS Code die Formatierung zerhaut (offensichtlich wegen den Quotes).