Most of the examples that you come across for Task.Run, are forbidding its use. There are many reasons for using it in a web app besides a background task. You might have a legacy code which can't be converted to async. So, to run it asynchronously, enclose it inside a Task.Run. For example -
function Customer GetCustomerDetails(int customerId)
{
var customer = GetCustomerById(1);
var ordersTask = GetOrdersByCustomerIdAsync(1);
var addressesTask = GetAddressesByCustomerIdAsync(1);
var reportsTask = Task.Run(() => GetReportsByCustomerId(1));
await Task.WhenAll(ordersTask, addressesTask, reportsTask);
var customerDetails = new Customer();
customerDetails.Orders = ordersTask.Result;
customerDetails.Addresses = addressesTask.Result;
customerDetails.Invoices = reportsTask.Result;
return customerDetails;
}