Você precisa fornecer condição de consulta para o método de preenchimento.
Algo assim:
const userWithCompanies = await User
.findById(userId)
.populate({
path: 'companies',
match: {
title: {$regex: `.*${search}.*`, $options: "i"}
});