As chaves são usadas apenas para agrupar comandos, então a coisa toda é:
/world/{ ... } - on lines matching /world/, do the commands within {}
n - load next line (and print the current)
s/hello/hi/g - substitute 'hi' for 'hello' on the _currently loaded_ line
i.e. ele alterou hello
para hi
nas linhas que vêm depois das linhas com world
(mas não verifica world
nas linhas que realizam a substituição).