While I agree that “within” is a bit more refined of a search, the behavior here is to show anything that is due “less than” 2 days from today. Yesterday is -1 days from today so it appears in the results. As will anything incomplete from the past.
The results are simply showing any past due tasks as well. Theoretically, aren’t past due tasks just as, if not more, important that what is due “next”? I think this is expected behavior because of the emphasis Asana wants to make on overdue items.
That said, a trigger next to this search criteria asking if past due tasks want to be seen would be a nice option. Not one I would recommend by default, but definitely would be preferred to help obtain the results you are looking for.