It entirely depends on the language as to the level of acceptability of using exceptions for control flow. In Java, it's moderately routine to get a random exception or two that you recover from and go along your way merrily. Python similarly is A-OK much of the time.
In Objective C, exceptions are "he's dead Jim" territory.
Some of the differences of use are caused by the implementation of exceptions in those environments and the expectations programmers of libraries in those environments to what happens when exceptions occur.