По два раза видимо потому что у вас цикл в цикле вставлен. По моему это тут неправильно, т.к. переменная массив один и тот же переберается, походу.
Чисто интуитивно предложу:
foreach($article->tegs as $articleTeg)
@if($teg->id == $articleTeg->id)
{{$teg->name}}
@else
{{$teg->name}}
@endif
@endforeach
плюс ваше условие выполняет абсолютно одинаковый код, независимо от того выполняется оно или нет. Вам нужно, если условие выполняется добавить атрибут "checked", инпуту, что бы вам могли подсказать как это сделать, вы скажите хотя бы что это за шаблонизатор, или что за CMS?