I don’t think there’s a definitive answer to this as there are both advantages and disadvantages to agreeing on a fixed price.
On the one hand, the joinery project may run over the estimated completion time. If it does, and you’ve agreed on a fixed price in advance, you will have saved money as the price would have been calculated based on the expected hours worked by the joiner.
On the other hand, it’s possible that the project will be completed ahead of schedule. If this were to be the case, you will have lost money as if you would have agreed to pay by the hour or by the day, you’ll have had to pay for less time.
From a business perspective, I’d say that it’s better to pay by the hour. I’d imagine a joinery firm will be more likely to overestimate the time it will take to complete a project than underestimate it if agreeing on a fixed-price as this will help them to save money.