async func()
всегда возвращает промис.
И в консоль выводится именно этот промис со статусом pending.
После завершения fetch и json статус промиса изменится на fulfilled и ему добавится значение.
Вот вывод консоли сразу после console.log:
Promise { <state>: "pending" }
Если через некоторое время раскрыть этот объект, то увидим, что его статус уже сменился (вы ведь помните, что в консоль выводится живой объект по ссылке):
Promise { <state>: "pending" }
<state>: "fulfilled"
<value>: Array(10) [ {…}, {…}, {…}, … ]
<prototype>: Promise.prototype { … }