Seu comando está realmente funcionando como esperado; você está pedindo ao sed para retornar as linhas 4 e 5 do arquivo "2input1output". Como você pode ver, os argumentos posicionais (ou seja, $ 1, $ 2 e $ 3) são retornados porque é isso que está no script.
O que você precisa fazer é executar o script primeiro para obter a saída desejada (STDOUT) e, em seguida, canalizar isso para o editor de fluxo (sed). Então, em um hit, para salvar o conteúdo desejado para uma variável:
$ MESSAGE=$(./2input1output Jojo Ar Dublin | sed -n 4,5p)
Lembre-se de que, se precisar preservar caracteres de nova linha ao acessar a variável, coloque-a entre aspas duplas primeiro.