Fetch records that do not get matched in another table
Linting &amp; Naming:

Your query is overflowing the box to the right. That's not good because it means I (and you) have to scroll to see it completely. Additionally while you use aliases, the table aliases are unnecessarily shortened.

After renaming them a little and reformatting the query looks as follows:

SELECT DISTINCT 
    PaymentToken.Id
    , PaymentToken.AccountNumber
    , PaymentToken.CardNumber
    , PaymentToken.ExpirationDate
    , PaymentToken.CardHolderName
    , PaymentToken.AccountToken
    , PaymentToken.CreatedDate
    , PaymentToken.Active
FROM Dev_NeoGateway_DTR.dbo.PaymentToken AS PaymentToken 
JOIN Dev_NeoGateway_DTA.dbo.DTA_Customer AS Customer
    ON Customer.Id = PaymentToken.AccountNumber
WHERE PaymentToken.AccountToken NOT IN (
    SELECT PaymentInstrument.CardToken 
    FROM Dev_NeoGateway_DTA.dbo.DTA_PaymentInstrument AS PaymentInstrument 
)


Optimizing the query

From what I can see, the Customer table is not used in your query. Joining it only slows down your query.
Other than that, the query is very straightforward. If you could restrict the subselect's result set, you could achieve better performance.  

Other than that, the only thing I'd expect to improve perfomance are indices on the involved columns