- externalId is of type SearchMultiSelectField
- externalIdString is of type SearchStringField
as described in common.xsd of the SuiteTalk WSDL: https://webservices.netsuite.com/xsd/platform/v2013_2_0/common.xsd
SearchMultiSelectField is a multi-select value where one can set a specific (and exact) references to a record, while SearchStringField is just a string value on which one can apply conditions like "starts with" or "contains".
So the difference is that one can use externalId when looking for specific record (with an existing reference), but with externalIdString one can search for externalIds matching a string pattern, for example: INV12*" with "starts with" and "INV12". Matching a string can be more resource intensive (and therefore less effective unless needed).
This behavior is equivalent to setting criteria for a search in User Interface, using filters External ID and External ID (Text).