Я был недоволен другими ответами, найденными здесь и в других местах в Интернете, поэтому я потратил значительное количество времени на то, чтобы понять, как это сделать правильно. Вот что я придумала. 
- Создайте ключ с именем .shи установите для него значение(Default)Shell ScriptвHKEY_CLASSES_ROOT.
- Создайте ключ с именем Shell ScriptвHKEY_CLASSES_ROOTи установите значение(Default)вShell Script.
 
- Создайте ключ с именем shellвHKEY_CLASSES_ROOT\Shell Script.
- Создайте ключ с именем openвHKEY_CLASSES_ROOT\Shell Script\shellи установите значение(Default)наRun with Cygwin.
- Создайте ключ с именем commandвHKEY_CLASSES_ROOT\Shell Script\shell\openи установите значение(Default)"C:\cygwin64\bin\mintty.exe" -i /Cygwin-Terminal.ico C:\cygwin64\bin\bash.exe -l -c "cd $(dirname \"$(cygpath -u \"%1\")\") ; $(cygpath -u \"%1\") ; exec bash"(изменениеC:\cygwin64\toC:\cygwin\если вы используете 32-битную версию).
Теперь вы можете просто дважды щелкнуть по файлу .sh, и он будет работать так, как вы ожидаете. 
Бонус:
- Создайте ключ с именем DefaultIconвHKEY_CLASSES_ROOT\Shell Scriptи установите значение(Default)в%SystemRoot%\System32\imageres.dll,-68. Это приведет к применению стандартного значка Batch-файла к вашим сценариям оболочки.
Я также создал файл исправления реестра (Сохранить как Run With Cygwin.reg):
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.sh]
@="Shell Script"
[HKEY_CLASSES_ROOT\Shell Script]
@="Shell Script"
[HKEY_CLASSES_ROOT\Shell Script\DefaultIcon]
@="%SystemRoot%\\System32\\imageres.dll,-68"
[HKEY_CLASSES_ROOT\Shell Script\shell]
[HKEY_CLASSES_ROOT\Shell Script\shell\open]
@="Run with Cygwin"
[HKEY_CLASSES_ROOT\Shell Script\shell\open\command]
@="\"C:\\cygwin64\\bin\\mintty.exe\" -i /Cygwin-Terminal.ico C:\\cygwin64\\bin\\bash.exe -l -c \"cd $(dirname \\\"$(cygpath -u \\\"%1\\\")\\\") ; $(cygpath -u \\\"%1\\\") ; exec bash\""