O quão simples isso é depende de como a ferramenta deve se comportar em condições não nominais. Se há sempre exatamente um bloco no arquivo com os comentários especiais, é bastante fácil com o awk, por exemplo.
awk '
/^## end my-block$/ {skip=0}
!skip {print}
/^## start my-block$/ {skip=1; system("cat new-block-content") || exit(1)}
' </etc/some-server/some-server.conf >/etc/some-server/some-server.conf.new &&
mv /etc/some-server/some-server.conf.new /etc/some-server/some-server.conf
Se você quiser adicionar o bloco no final, se ainda não estiver presente, ainda não é muito difícil:
awk '
/^## end my-block$/ {skip=0}
!skip {print}
/^## start my-block$/ {skip=1; system("cat new-block-content") || exit(1)}
END {print "## start my-block"; system("cat new-block-content") || exit(1); print "## end my-block"}
' </etc/some-server/some-server.conf >/etc/some-server/some-server.conf.new &&
mv /etc/some-server/some-server.conf.new /etc/some-server/some-server.conf
Lidar com outros cenários (por exemplo, iniciar comentários, mas não encerrar comentários, vários bloqueios,…) fica progressivamente mais difícil.