Минусы использования AsyncTask?
Почему нельзя? Можно! Но только не всегда :)
АсинкТаски - для коротких асинхронный операций. Типичный пример - обращение к БД. Ни в коем случае не использовать для работы с сетью.
Почему: 
1) АсинкТаски не привязаны к жизненному циклу активити. При пересоздании активити onPostExecute() выполнится, но активити будет не та (и она может утечь, что совсем не круто).
2) Следствие 1 - довольно хорошо заморочиться надо, чтобы написать правильный код с  АсинкТасками. Такой код становится негибким и неудобным. 
3) Без дополнительный усилий (executeOnExecutor) асинктаски ставятся в очередь и выполняются в отдельном потоке, но последовательно. Как следствие - тормоза UI там, где они используются правильно (например AsyncTaskLoader).
Минус в том, что если ты выполняешь в AsyncTask большой запрос, то в случае перехода на другой Activity, к примеру, GC может не уничтожить Activity, если таска не завершилась. Это приводит к утечкам памяти, и это плохо. Например, с сетью работая, лучше использовать EventBus (greenrobot), который начинает свою работу в отдельном потоке. Такие дела.