If XeTeX can find the font, fc-match should as well. So, you can get all the names it’s indexed under with
fc-match -v "David CLM"
On my system, this tells me that the filename is DavidCLM-Medium.otf, the family is "David CLM", the style is "Medium" and the fullname is "David CLM Medium". XeTeX is matching "David CLM" with "David CLM Medium", and LuaTeX is not.
The recommended way to load the font family is by its filenames:
\documentclass{article}
\usepackage[bidi=basic, layout=sectioning.tabular]{babel}
\usepackage{fontspec}
\babelprovide[import=he]{hebrew}
\defaultfontfeatures{ Scale = MatchUppercase,
Ligatures = TeX }
\defaultfontfeatures[DavidCLM]{
UprightFont = -Medium,
BoldFont = -Bold,
Ligatures = Discretionary,
Extension = .otf,
% For italics that slant right-to-left, use:
ItalicFont = -MediumItalic,
BoldItalicFont = -BoldItalic,
% For italics that slant left-to-right, instead use:
% AutoFakeSlant = 0.15
}
\babelfont{rm}
[Scale=1.0]{TeX Gyre Schola}
\babelfont[hebrew]{rm}
{David CLM}
\begin{document}
\begin{otherlanguage}{hebrew}
שָׁלוֹם חֲבֵרִים
\end{otherlanguage}
\end{document}

This removes all guesswork and tells fontspec to look for files with the exact names DavidCLM-Medium.otf, DavidCLM-Bold.otf, etc.
A more minimal MWE would be
\documentclass{article}
\usepackage[bidi=basic, layout=sectioning.tabular]{babel}
\babelprovide[import, main]{hebrew}
\babelfont{rm}
[UprightFont=*-Medium]{DavidCLM}
\begin{document}
שָׁלוֹם חֲבֵרִים
\end{document}

Note that I have version 1.33 of the Culmus Project fonts installed. If you have a different version installed on your system, your files might have different filenames. You should also be able to load it by family name plus style, as UprightFont = {David CLM Medium}, BoldFont = {David CLM Bold} (not worrying about slanted faces you don’t want).