I have read that permutation test is preferred to use when sample size is relatively small and when ANOVA fails to capture the difference due to this fact.
I see several difficulties with this statement, of which I'll mention a few:
how can you tell if it's "due to this fact" rather than due to something else?
if sample sizes are very small (particularly with ties), permutation tests only have a small number of possible significance levels, and the smallest possible significance level may be substantially larger than the desired level; this problem isn't shared by ANOVA.
if the ANOVA assumptions are suitable, a permutation test won't necessarily give you any additional power.
Permutation tests may be particularly useful when the actual distribution is non-normal** - if it's heavy-tailed for example - better power might sometimes be had by a rank-based permutation test. This benefit might be quite noticeable when sample sizes are moderately small (but not too small, perhaps).
** but not too heavily non-normal, because then the test statistic is not robust. It's still a valid test (i.e. it's level-robust), but if the distribution is so non-normal that the sample mean is a very inefficient estimate of the population mean, then the test will be low-power. If the distribution is fairly close to normal and the sample sizes aren't tiny, then it's a very good choice.
But there are also robust methods, GLMs, bootstrapping to name some alternative possibilities.