To give a little background on the directory name: When Let's Encrypt went public about six months ago, that was the name of both the service and the client software. The client software saved its configuration, certificates, etc, in /etc/letsencrypt. The client has since been renamed to certbot; I'm not sure if the directory in /etc is still the same or not.
letsencrypt.sh is one of many alternate clients that's implemented as a bash script. Naming it such makes perfect sense, with the ".sh" distinguishing it from the original client and describing that it's a shell script. It needs to store data in /etc as well, and shouldn't conflict with /etc/letsencrypt, so /etc/letsencrypt.sh was used. I agree that a directory name with a .sh extension is unusual, but I think in this case it's needed.