I have no inside information here, but I assume that BA are taking a commercial decision here not to simply open up all available seats for miles/redemption/upgrade (unlike many US airlines).
They would much rather try to sell these seats at a premium. Most people travelling on miles plan and book their tickets far in advance. Someone who wants to travel last minute generally has a more urgent need to get to their destination, hence will generally be prepared to pay more for their ticket. If BA opened up all unsold seats for mileage redemption then there would be a significant number of people who would redeem miles in preference to paying a premium fare. So while BA would fill seats they would also lose a significant amount of revenue (and profitability).