Powodem jest to, że gdy kolumna bez aliasów nie istnieje w podzapytaniu, ale istnieje w zapytaniu zewnętrznym, Oracle zakłada, że odwołujesz się do kolumny z zapytania zewnętrznego.
W przypadku aliasów zapytanie, z którym się mylisz, wyglądałoby tak:
select *
from test_values tv
where tv.tst_id in (select tv.tst_id2
from test_lookup tl
where tl.tst_value = 'findMe');
Mamy nadzieję, że dzięki temu wszystko będzie jaśniejsze?
Problem, który widzisz, jest bardzo dobrym przykładem tego, dlaczego zawsze powinieneś oznaczyć kolumny nazwą tabeli, z której pochodzą — na początku znacznie ułatwia to utrzymanie zapytania!