List comparison works by comparing element by element.
For each pair of equal elements, the comparison advances to the next. The first that is not equal decides. And 10 is greater than 3 while "10" is not greater than "3".
Lists are compared element by element, disregarding the size (tuples are compared by size then elements). So it should come down to integers and binaries comparing differently.
As for reasoning for this behaviour - computing size of list is as expensive as traversing whole list, so comparing two lists first by length and then by elements would make whole operation more expensive.