Slow join behaviour with 'or' in predicate
OR is slower because you no longer can perform an index seek, but effectively forces the database engine to look through each leaf node in your index tree. 
With a single parameter (no OR), the engine can seek down through the index to the relevant leaf nodes, but when you ask it an OR, it scans the entire range of leaf nodes.

If the performance is too slow to tolerate, do as the comments suggest and try a UNION (no duplicate values) or a UNION ALL (allow duplicate values), or even two separate queries on their own and then join the results together in the code layer receiving the results.