Scripts ending in .sh are considered "old-style" scripts, and are run in alphabetical order after all "new-style" scripts.
Scripts without .sh are treated as "new-style" scripts, and are parsed by
rcorder(8) before being executed. rcorder requires some header comments to determine what the script depends on and when it can be run. You can view how rcorder sees things by running:
# rcorder /etc/rc.d/* /usr/local/etc/rc.d/*
If you don't see your script listed there, then rcorder doesn't know about it. You're missing all the rcorder headers.