The WINSTART.BAT file is similar to the AUTOEXEC.BAT but there is a subtle difference.
TSRs loaded in AUTOEXEC.BAT will appear in any DOS window that is opened, but those loaded in WINSTART.BAT will be loaded only in what is called the System VM and will not appear in other DOS windows.
This distinction becomes useful if you write a TSR that needs to communicate with a Windows program. If such a TSR is loaded through AUTOEXEC.BAT, every DOS window opened will have a running clone of it. Putting it in WINSTART.BAT avoids this problem.
More information about DOS / Windows communication and Windows 9X architecture can be found in Barry Kauler's excellent (though somewhat outdated) book - 'Windows Assembly language and System Programming'.