The Ship Date field on the Sales Order is pre-populated even if the user does not select any value. This is important to note as the System Notes will show that a user "set" the value on this field when in fact this was never populated.
The default value of the Sales Order Ship Date is controlled by Setup>Accounting>Shipping>Preferences tab. By design Ship Date = transaction date + Number of Days to Shipment.
1. Ship Date is blank when Number of Days is blank.
2. When Cutoff Time for Shipments is not blank then if the current time is after the cutoff time, one shipping day will be added to the calculated Ship Date.
3. When Ship on Saturday and Ship on Sundays is/are not checked then these days will be skipped.
4. When Shipping Holidays are defined then these days will be skipped. You can set Shipping Holidays under Setup>Accounting>Shipping>Preferences>Holiday Date.