I guess the problem is that you’re trying to loop through all the products while you’re already looping through the products:
As the result, your code is pulling the metafield for all the line items. You may want to try replacing the second for loop with a single line of code just like you did for “Artikelnummer” or “Anzahl”:
hersteller_bezeichnung: {{ line.line_item.metafields.my_fields.hersteller_bezeichnung }}
Alternatively, if you’d like to keep that second for loop, you may want to add an if statement to compare the ID of the line item iterated by that secondary loop with the ID of the line item iterated by the parent loop and display the data only if the IDs are the same:
{% for line_secondary_loop in line_items %}
{% if line_secondary_loop.id == line.id %}
{{ line_secondary_loop.product.metafields.my_fields.hersteller_bezeichnung }}
{% endif %}
{% endfor %}
