L'espressione
name between 'A' and 'B'
è equivalente a
name>='A' and name<='B'
Quindi 'Argentina' è>='A' e <='B' e soddisfa la condizione. Ma 'Bolivia' NON è <='B'. 'Bolivia'>'B'. Non guarda solo la prima lettera:guarda l'intera stringa. Che è sicuramente il modo in cui dovrebbe essere:se non lo facesse, non ci sarebbe modo di dire che volevi una gamma che includesse "Smith" ma non "Smithers".
Per realizzare ciò che desideri, potresti dire:
substr(name,1,1) between 'A' and 'B'
oppure:
name like 'A%' or name like 'B%'
oppure:
name>='A' and name<'C'