open -jga TextEdit abre TextEdit oculto ( -j ) y sin hacer que esté al frente ( -g ). La opción -j se agregó en 10.8 y solo se muestra en el mensaje de ayuda y no en la página de manual. Si TextEdit ya se está ejecutando, open -ja TextEdit (sin -g ) solo hará que TextEdit esté al frente y no oculto. Para algunas aplicaciones como TextEdit y Mail, open -jg abre una nueva ventana visible si la aplicación se está ejecutando pero no tiene ventanas abiertas, pero puede usar algo como pgrep -x TextEdit||open -jga TextEdit como solución.
Una segunda opción en 10.9 y versiones posteriores es lsappinfo launch launchandhide=true nofront=true /Applications/TextEdit.app .
Una tercera opción es osascript -e 'launch app "TextEdit"' . A diferencia de los comandos open y lsappinfo , se bloquea hasta que la aplicación termina de abrirse. Para algunas aplicaciones como TextEdit y Mail, el comando launch abre una nueva ventana visible si la aplicación aún no se está ejecutando.
Editar: ninguna de las opciones anteriores parece funcionar con VirtualBox, pero puedes ocultar VirtualBox después de abrirlo:
open -jga VirtualBox;lsappinfo setinfo -app VirtualBox kLSApplicationIsHiddenKey=true
osascript -e 'launch app "VirtualBox"' -e 'delay 1' -e 'tell app "System Events" to set visible of process "VirtualBox" to false'