O comando set (quando não está configurando opções) define os parâmetros posicionais
eg
$ set a b c
$ echo $1
a
$ echo $2
b
$ echo $3
c
O -- é o padrão "não trate nada seguindo isso como uma opção"
Os "$@" são todos os parâmetros de posição existentes.
Então a sequência
set -- haproxy "$@"
Colocará a palavra haproxy na frente de $1 $2 etc.
por exemplo
$ echo $1,$2,$3
a,b,c
$ set -- haproxy "$@"
$ echo $1,$2,$3,$4
haproxy,a,b,c