Here is a self-contained, interactive AppleScript that can be compiled as an application in the Script Editor, (or an Automator Run AppleScript action) and will find the RAW files that are not in a JPEG folder. It then moves, not deletes these RAW files to the Trash, so that one can use the Finder's Put Back capability for Trash items to move back to their original location.
A "black-box" Python handler is used to identify the RAW files for removal. Excludes the .DS_Store files. Quicker than it looks.
For each folder chooser prompt, navigate to the specific folder containing the RAW, and JPEG images respectively.
In addition to the two folder prompts, there are two dialogs:


Copy/paste the following code into the Script Editor (Launchpad : Other : Script Editor). Click the hammer icon to compile the code, and then the triangle button to run it.
-- dif_folder.applescript
-- Removes RAW image files that are no longer found in the JPEG image folder.
-- For RAW ["a.cr", "b.cr", "c.cr", "d.cr"] and JPEG ["a.jpg", "b.jpg", "c.jpg"], it will
-- remove RAW ["d.cr"]. The Python handler uses sets and dictionaries for speed, and
-- returns the RAW items that are to be moved to the Trash. The Trash is not emptied so that a
-- failsafe exists to Put Back the RAW images to their original location.
-- Tested: OS X 10.11.4, default OS X Python interpreter (2.7.10)
-- VikingOSX, May 14, 2016, Apple Support Community.
property loc : ((path to home folder) as text) as alias
set raw_folder to choose folder with prompt "Select sub-folder with RAW files:" default location loc
set jpg_folder to choose folder with prompt "Select sub-folder with JPEG files:" default location loc
set args to raw_folder'sPOSIX path'squoted form & space & jpg_folder'sPOSIX path'squoted form
set raw_deletes to paragraphs of folder_diff(args)
if "None" is in raw_deletes then
display dialog "No differences found between RAW and JPEG files"
return
end if
tell application "Finder"
repeat with afile from 1 to count raw_deletes
set z to (item afile of raw_deletes) as POSIX file
moveztotrash
end repeat
end tell
display dialog "RAW files with no JPEG equivalent moved to Trash: " & (count raw_deletes) as text
return
on folder_diff(xargs)
return do shell script "python <<EOF - " & xargs & "
#!/usr/bin/python
# coding: utf-8
# black box to return RAW files not found in JPEG folder
from __future__ import print_function
import sys
import os
rawf, jpgf = sys.argv[1:]
raw_files = filter(lambda x: not x.startswith('.'), os.listdir(rawf))
# Filter out the .DS_Store files that will play havoc with dict keys
raw_base = (filter(lambda x: not x.startswith('.'),
[os.path.splitext(os.path.basename(fn))[0].lower() for fn in os.listdir(rawf)]))
jpg_base = (filter(lambda x: not x.startswith('.'),
[os.path.splitext(os.path.basename(fn))[0].lower() for fn in os.listdir(jpgf)]))
raw_dict = dict(zip(raw_base, raw_files))
unmatched = list(set(raw_base) - set(jpg_base))
del_raw = [raw_dict[x] for x in sorted(unmatched)]
if del_raw:
print(*('{}'.format(os.path.join(rawf, item)) for item in del_raw), sep='\\n')
else:
print(None)
EOF"
end folder_diff