Not all permutations of inputs are possible with all list structures. Both String.Contains inputs are defined as single values. The node is smart enough to iterate over a list when either input is defined that way but only because it can manage the single input as a static value for each of the listed values of the other input. When both inputs become lists, the inherent mapping of the inputs can no longer be implied.
You can fix this by making the sublist structures match a viable input structure: one-to-one inputs, or a single list per single value. Both of these can be accomplished by duplicating values in one or both of the input lists.
The other option is to use python to map the lists to each other and iterate based on the defined structure.