You can't easily do this for currently deleted posts. For any post the delete event is visible in the Post Timeline. It is possible to find posts that were deleted and later undeleted as those are in the Stack Exchange Data Explorer.
This query shows for once deleted posts if they were deleted by their owner. There isn't an easy to use (historical) list of moderators in SEDE so I didn't bother to check if the delete was done by a moderator. I have added one way to get moderators by looking at users who have applied postnotices as that is a mod only feature. That list isn't guaranteed to contain all mods. There might be additional ways to find mods. That is left as an exercise for the reader.
;with mods as (
select distinct owneruserid
-- , max(postid) as [Post Link]
from postnotices pn
inner join postnoticetypes pnt on pnt.id = pn.postnoticetypeid
where pnt.classid <> 2 -- Bounty
and owneruserid <> 152859 -- data bugs
postid as [Post Link]
when p.owneruserid = voters.userid then 'owner'
when voters.userid in (select owneruserid from mods) then '(former) mod'
from posthistory ph
inner join posts p on p.id = ph.postid
cross apply openjson(text, '$.Voters') with (userid int '$.Id') voters
where posthistorytypeid = 13
Do know there is also a possibility to delete a post via review. When a post gets flagged as Very Low Quality or Not an answer in enters a review queue where reviewers can delete a post, if enough of them agree. Those reviewers don't need to have > 10K reputation or a diamond to make that delete happen.
More information on how deleting works is found in How does deleting work? What can cause a post to be deleted, and what does that actually mean? What are the criteria for deletion?