@JohnG As always it depends and you should always test which one is more optmized approach, when you use Filter Pane, you are applying a global filter on a visual or a report, DAX Engine can re-use the data cache for subsequent queries that might come later, if
SELECT Products[Color] FROM Products is requested from the engine then it will be cached and if it is later requested by any other measure then it can be used which can improve the performance because then a similar query will not be executed.
By applying a global filters in a way you are reducing the redundancy in the DAX code, there is a possibility that a similar query is executed by all measures so it can optimize the code.
On the other hand if the Filter Pane has some complex logic that you haven’t well tested then you will see that preparing the filter context takes most of the time of the execution.
Somewhat related posts that will give you some perspectives: