• Same as INSERTs and UPDATEs, DELETEs can be throttled by indexes. You usually only need one index for the join to identify target rows, and it doesn't require an INCLUDE section, on the contrary the extra weight would slow it down (fewer rows per page). Try disabling ordinary indexes (except the one used for the join) before the delete and rebuilding them afterwards.
    Use a manual table lock if you can, it's less costly than row or page locking.
    If the proportion of the table affected by the delete is high, you may have to split the delete into batches to avoid blowing your tran log.
    Depending on your RAM you might want to investigate cache priming. Updating (or deleting) rows in the data cache is fast, having to fetch them from disk first is slow. Separating out these two steps can be very much quicker than a convention DELETE.
    “Write the query the simplest way. If through testing it becomes clear that the performance is inadequate, consider alternative query forms.” - Gail Shaw

    For fast, accurate and documented assistance in answering your questions, please read this article.
    Understanding and using APPLY, (I) and (II) Paul White
    Hidden RBAR: Triangular Joins / The "Numbers" or "Tally" Table: What it is and how it replaces a loop Jeff Moden