Why is the Latin script in LM Math derived from Euler rather than cmsy?

It was a design choice. In TUGboat, Volume 37 (2016), No. 3, https://www.tug.org/TUGboat/Contents/contents37-3.html, in the article "GUST e-foundry font projects", pages 317-336, the authors of the font wrote on page 326:

We have to confess, however, that we were not especially delighted with the Computer Modern calligraphic script. More pleasingly designed, to our eyes, are the calligraphic letters of the renowned Euler family. Therefore, we decided to transfer the glyphs from the Euler fonts (slanting them slightly) to the LM Math font.


Conjecture: Neither Computer Modern Symbol's script nor its successor, Latin Modern Symbol's script, provide the symbols the MATH table requires. The OMS encoding does not provide lower-case script. Euler does. Hence, the script symbols are taken from Euler rather than Latin Modern Symbol.

The font you show as Latin Modern script is only one of Latin Modern's. In particular, it is not what is used for \mathcal with traditional fonts.

\documentclass{article}
\usepackage{cfr-lm}
\begin{document}
$\mathcal{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$
\end{document}

The same result can be obtained by loading lmodern or, with no packages, by using

\fontencoding{OMS}\fontfamily{lmsy}\selectfont

Latin Modern script

In order to qualify as a maths opentype font, Latin Modern Math has to provide a complete MATH table and this requires a number of script fonts and maths alphabets - more than those provided by Computer Modern or the type1 version of Latin Modern derived from it.

For this reason, the developers of Latin Modern Math also based some elements of this font on fonts other than Computer Modern. This includes the calligraphic and fraktur fonts which are, as you say, based on Euler. (This is explained in the README.) I would have guessed from the README that the font derived from Computer Modern Symbol, on which Latin Modern Symbol is based, would be available in Latin Modern Math, but that it is expected to be accessed as \mathscr.

The math OTF fonts should contain a special table, MATH, described in the confidential Microsoft document "The MATH table and OpenType Features for Math Processing". Moreover, they should contain a broad collection of special characters (see "Draft Unicode Technical Report

25. UNICODE SUPPORT FOR MATHEMATICS" by Barbara Beeton, Asmus Freytag, and Murray Sargent III). In particular, math OTF fonts are

expected to contain the following scripts: a basic serif script (regular, bold, italic and bold italic), a calligraphic script (regular and bold), a double-struck script, a fraktur script (regular and bold), a sans-serif script (regular, bold, oblique and bold oblique), and a monospaced script.

The basic script is, obviously, Latin Modern. Some scripts, however, are borrowed from other fonts (the current selection, however, may be subject to change), belonging, however, to the "TeX circle":

  • the calligraphic and fraktur alphabets are excerpted from the renowned Euler family (http://en.wikipedia.org/wiki/AMS_Euler);

  • the double struck script is excerpted from Alan Jeffrey's bbold font (http://www.tug.org/texlive/Contents/live/texmf-dist/doc/latex/bbold/bbold.pdf)

  • the sans serif and monospaced alphabets are excerpted from the Latin Modern Sans and Latin Modern Mono fonts (http://www.gust.org.pl/projects/e-foundry/latin-modern); sans serif bold Greek symbols (required by the already mentioned "Unicode Technical Report #25") were prepared using D.E. Knuth's font sources with some manual tuning

However, unicode-math uses the same fonts for normal and bold \mathscr as it does for \mathcal. Looking at the font in FontForge, it contains multiple copies of the Euler-based script, but no copy of the Latin Modern Symbol script. However, I guess by the 'serif script', they just been the roman.

One reason to use Euler rather than Latin Modern Symbol is that the latter script only includes upper case, but the MATH table requires both. Hence, there is no model in Computer Modern or Latin Modern Symbol for a lower-case script alphabet. It seems a reasonable guess that this motivated the decision to substitute Euler. Euler provided what Knuth's OMS encoding did not: lower-case letters.