Acho que a opção -j
é o que você deseja:
zip -j out.zip ~/Dir1/file1.txt ~/Dir2/file2.txt
Da página do manual:
-j Store just the name of a saved file (junk the path),
and do not store directory names. By default, zip
will store the full path (relative to the current path).