Вам нужно сделать это в 2 части:
# 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[@]}"
Команда read
перенесет первую работу, разделенную пробелами, в переменную disk
, а затем оставшуюся часть строки в данные
. Очень важно заключить в кавычки все переменные, чтобы избежать разделения слов