Comparing if-else and case condition
This problem has me perplexed. Frankly, I don't believe you ;-) !!!

There is no logical reason for this code to be so different from each other. There must be something else going on.... For a start, the bash process itself is probably taking almost no time at all, and all the time will be spent running the 'install' sub-processes. I imagine that you are running the install processes twice as many times for some reason.... or that, subsequent installs are faster because you don't need to access the disk/net, or something.

Regardless, I don't believe the difference in performance is because of the case vs. if

As a side note, do you need to execute the installs in a sub-shell and capture the results like you do and then echo them? The install lines should all look similar to:

# Relace this: echo $(./install.sh --resourceId=$id --name=httpd)
# with:
./install.sh --resourceId=$id --name=httpd