Через var_dump обнаружил, что поля из связанной таблицы все же возвращаются во вложенном массиве ['artStatus']. По какой-то причине ActiveDataProvider вложенные массивы в JSON не добавляет.
Нашел решение, используя SqlDataProvider:
$count = $model->find()
->joinWith('artStatus')
->andWhere('{{status}}.code = :code', [':code' => $code])
->count();
return new SqlDataProvider([
'totalCount' => $count,
'params' => [':code' => $code],
'sql' => '
SELECT article.*, status.code, status.descr AS sdescr
FROM article
LEFT JOIN status ON article.id_status = status.id
WHERE status.code = :code'
]);
Но этот SQL в контроллере мне совсем не нравится. Поэтому создал представление в MySQL, в котором все нужные поля из связанных таблиц. К этому представлению модель и все, можно обойтись без joinWith и т.п.