Você precisa de um delimitador /
que termine o regexp antes da vírgula. E você precisa colocar aspas ao redor de todo o argumento de expressão para sed
porque você tem espaços em ambos os regexps.
sed -e "/pd begin $(echo 3:1I:1:1|sed 0,/:/{s/:/' '/})/,/pd end $(echo 3:1I:1:1|sed 0,/:/{s/:/' '/})/p" /tmp/hp-raid-data-harvester.out
^ ^