Change the default action to open executable files in the editor instead of Terminal
Run plutil -convert xml1 ~/Library/Preferences/com.apple.launchservices.plist and add an entry like this under LSHandlers:
&lt;dict&gt;
    &lt;key&gt;LSHandlerContentType&lt;/key&gt;
    &lt;string&gt;public.unix-executable&lt;/string&gt;
    &lt;key&gt;LSHandlerRoleAll&lt;/key&gt;
    &lt;string&gt;com.macromates.textmate&lt;/string&gt;
&lt;/dict&gt;

You can also change the default application for normal files with no extension:
&lt;dict&gt;
    &lt;key&gt;LSHandlerContentType&lt;/key&gt;
    &lt;string&gt;public.plain-text&lt;/string&gt;
    &lt;key&gt;LSHandlerRoleAll&lt;/key&gt;
    &lt;string&gt;com.macromates.textmate&lt;/string&gt;
&lt;/dict&gt;

You can apply the changes by restarting. Just logging out and back in doesn't seem to work. You could also rebuild the Launch Services database, but it has the side-effect that the warnings about opening applications for the first time are shown again.
Another option is to add something like this to a duti configuration file:
com.macromates.textmate public.unix-executable all
com.macromates.textmate public.plain-text all

To make this question more searchable, here is the error message Finder shows when you try to change the default application for executable scripts:

The operation can’t be completed.
An unexpected error occurred (error code -50).