Você precisa fazer isso em duas partes:
# 1. read the output of lsblk, 2 words per line, into an array
parts=()
while read -r disk data; do
parts+=("$disk" "$data")
done < <(lsblk -lno name,type,size | grep sda)
# 2. send the elements of the array to the dialog command
dialog --menu "Choose one:" 0 0 0 "${parts[@]}"
O comando read
colocará o primeiro trabalho separado por espaço em branco na variável disk
e, em seguida, o restante da linha em data
. É muito importante citar todas as variáveis para evitar a divisão de palavras