El motivo es que cuando una columna sin alias no existe en la subconsulta pero sí en la consulta externa, Oracle asume que se está refiriendo a la columna de la consulta externa.
Con los alias, la consulta que le confunde se vería así:
select *
from test_values tv
where tv.tst_id in (select tv.tst_id2
from test_lookup tl
where tl.tst_value = 'findMe');
Con suerte, ¿eso aclara las cosas?
El problema que está viendo es un muy buen ejemplo de por qué siempre debe etiquetar sus columnas con la tabla de la que provienen:¡hace que sea mucho más fácil mantener la consulta para empezar!