I ended up with exactly the same search. I suppose it was hidden in the details, I am unsure about what I can share, because they are related directly to my work. In theory the original search should work, but maybe there is something I am missing here. If there would have been a difference I would have gladly shared it already.
My final search looks like this (I have left a few more details in):
| inputcsv origin.csv where <condition>
| eval zip_data_first=substr(zip,1,2)
| lookup zip.csv zip_first as zip_data_first OUTPUTNEW lat lon
and because I am ending up with multiple matches I added this (maybe someone make a good use of it even though my problem has somehow just vanished):
| stats avg(lat) avg(lon) by zip_data_first, <addtl. fields>
... View more