You can use this loop in bash
$ for i in */; do zip -r "${i%/}.zip" "$i"; done
Parallel execution
$ for i in */; do zip -0 -r "${i%/}.zip" "$i" & done; wait
Excluding a directory
$ for i in */; do if [ $i != "test/" ]; then zip -r "${i%/}.zip" "$i"; fi done
Excluding multiple directories using regex
$ for i in */; do if ! [[ $i =~ ^(test/|test2/)$ ]]; then zip -r "${i%/}.zip" "$i"; fi done