Obrigado pelas informações @Falco e feliz aniversário.
Descobri que o problema estava em onde adicionei aquela linha <script src="....
Isso funcionou para mim:
<script type="text/discourse-plugin" version="0.8">
console.log(settings.epn_id);
window._epn = {campaign: settings.epn_id, smartPopover:false};
var script = document.createElement('script');
script.src = 'https://epnt.ebay.com/static/epn-smart-tools.js';
var head = document.getElementsByTagName("head")[0];
head.appendChild(script);
</script>
O próximo problema que encontrei é que os elementos carregados dinamicamente não têm o script aplicado a eles. Por exemplo, se eu atualizar a página em um tópico, as postagens que carregam terão o link de afiliado, mas rolar para revelar mais postagens - essas não terão.
Existe uma maneira de executar o script toda vez que um novo elemento é carregado?