Algumas coisas rápidas para verificar:
Primeiro de tudo, se você está trabalhando em um único disco, você tem uma taxa de transferência de 90MB / s. Dependendo do disco e da interface, isso pode realmente ser o que o disco é capaz (!)
Por padrão, o DD faz muitas gravações muito pequenas. Você pode usar a opção BS (como em bs = 1M) para aumentar o tamanho do bloco, o que reduzirá o número de gravações, o que, por sua vez, reduzirá a carga de IO.
Enviar os dados através de um pipe é semi-caro, pois os dados precisam ser copiados para um buffer relativamente pequeno e novamente, além das alternâncias de contexto entre gunzip (que por sinal é singlethreaded, outro gargalo) e dd. Tente descompactar o arquivo primeiro, depois anote-o e meça o tempo que cada operação leva para ter uma ideia do que está atrasando você.