Because picking a delivery slot imposes a constraint which creates a cost for the delivery provider.
> Everybody has jobs. Everybody finds it annoying to buy something on line. You never know when it's going to turn up. You have to take a day off, and hope your driver is competent at his job.
Most everybody has jobs, but most people I know don't find it annoying to buy stuff online; many people can have packages delivered to work, and many people have no problems with packages delivered to their home when they aren't there.
> Why can't you just say "I'll be at home on Thursday after 5pm. Call me on #555-333-9999 if you have any issues". Courier delivers the package after 5pm on Thursday.
Because, as you note, everyone has jobs, and if there was no cost to request delivery times, pretty much everyone would request something like "after 5pm". Which would eliminate the freedom of delivery companies to efficiently use delivery vehicles. Which would drive up their costs.
Asking for something which imposes an additional constraint on the service provider which has a cost to fulfill either costs everyone extra to subsidize you, or must cost you extra.