Форма $ {параметр: + word}
расширение параметра , похоже, выполняет свою работу
( xyz=2; set -- ${xyz:+"$xyz"}; echo $# )
1
( xyz=; set -- ${xyz:+"$xyz"}; echo $# )
0
( unset xyz; set -- ${xyz:+"$xyz"}; echo $# )
0
Так что в вашем случае это должно быть преобразовано в
program ${var:+"$var"}