Use the trans tag in Twig without escaping HTML
AFAIK the Twig trans tag in Drupal 8 was implemented to ease translations to themers that were already familiar with Twig.

Under the hood, it's working with the same kind of translation strings as the regular Drupal translation function t() or the Drupal Twig filter |t, whereas all variables you are using within the trans block are handled as @variable or %variable placeholder within the translation strings.

These placeholders within the translation function always escape HTML before being inserted to the translation. No matter how you try to not escape the values you pass in, except you pass in a FormattableMarkup object.

Unsanitized variables ({{ variable|raw }} in Twig templates or !variable in translation strings) are deprecated for Drupal 8 translations and won't work in latest 8.x Drupal versions. The translation API description is a little outdated.

For your use case, you may just add the HTML link tag to your translation string and make the link URL itself the variable. Unfortunately, the Twig trans tag doesn't support that kind of variable yet. (Compare this core issue.) So you should use the t filter instead:

{{ 'A &lt;a href=":url"&gt;link&lt;/a&gt; example in a translation.'|t({ ':url': url }) }}


The above example matches the translation strings:

en: A &lt;a href=":url"&gt;link&lt;/a&gt; example in a translation.

de: Ein Beispiel-&lt;a href=":url"&gt;Link&lt;/a&gt; in einer Übersetzung.