If it is not run as a sub-shell, using open and then subsequently closing the app will pollute the existing terminal with messages like:
[1] 287915
[1]+ Done xdg-open "$@" > /dev/null 2>&1
Making it a subshell removes this noise and keeps it more like the open command in macOS.