When I first started using MathJax to write equations in Obsidian, I was surprised to see that Greek letters didn't work like Latin ones! There were two major differences:
Uppercase Greek letters were "upright / roman" by default, rather than italic.
Lowercase Greek characters were unaffected by the commands \mathrm, \mathbf, \mathbfit, and similar. (\boldsymbol did work, though!)
The standard rendering of Greek characters.
I tried looking for workarounds online, but they were all quite complicated, and required macros or other features that I couldn't implement in Obsidian. I spent a few years just accepting that there was no solution, but I have now found something that works!
The same commands after implementing my workaround.
The Workaround
The key realisation I had that makes this workaround possible is that Unicode Greek characters do behave identically to the Latin ones! While \mathrm \alpha is still italic, amazingly \mathrm α is upright! So we just need to redefine \alpha to write α instead. If you already know how to do this, you can skip the explanation below (but may want to look at part 3).
Part 1 — Adding a Preamble to MathJax
Firstly, you're going to need the Extended MathJax Plugin. This will let you add a so-called LaTeX Preamble to Obsidian's MathJax. This preamble allows you to define custom commands you can use in your notes! Defining custom commands is one of the most amazing parts of LaTeX, and I highly recommend it general (not just for this workaround).
Once you have installed the plugin, you need to create a preamble.sty file. By default, this should be in the root directory of your vault, but you can put it anywhere — just change the path in the plugin's settings.
Tip
If you haven't already, make sure you have "see file extensions" enabled in the file explorer you use. This will allow you to make, for example, a text file and then change the extension to .sty.
Part 2 — Redefining the Commands
Now that we have access to a preamble, we can go ahead and redefine the commands we want. You can copy-paste the commands from below for a quick solution, but again I highly recommend learning how to use \newcommand and \renewcommand in general.
Note that I also defined some commands for uppercase Greek letters that otherwise don't have any, like \Alpha and \Beta. You can remove these if you don't want them (they are the ones using \newcommand instead of \renewcommand).
Tip
If you want, you can also define some "shorthands" at this stage. I defined \ups and \eps for upsilon and epsilon respectively.
I have also defined \Delt for an "upright / roman" Delta, since differences like shouldn't be italicised. \Sigma and \Pi don't have issues because \sum and \prod are unaffected by our changes.
Now simply save the file and restart obsidian. So long as the plugin is enabled, this should now work! The commands now behave consistently for \mathrm, \mathbf, \mathbfit, \mathsf, \mathsfbf, and \mathsfbfit. Uppercase \mathtt also works.
Strangely, \mathsfit still doesn't work on lowercase Greek. I don't like to use the sans-serif symbols, so this doesn't affect me, but it is rather strange! If I find a solution I will update this page.
(Optional) Part 3 — CSS and fonts
If you're ready to do some slightly more technical work, you can actually go even further than we have so far! Specifically, we can use CSS snippets to change the font that is used to render the characters! I won't explain how to do this in detail, since it's slightly technical, but I will give a general overview.
For me, I wanted to able to write typewriter (monospace) Greek. As previously mentioned, this already works with uppercase characters like \Gamma, but not with lowercase ones (which I wanted). I installed the New Computer Modern font which includes lowercase Greek monospace (along with many other symbols!) in the same style as the default Computer Modern designed by Donald Knuth. Then I added this CSS snippet:
I've heard that !important is considered sloppy by some, but I find it very helpful when trying to override Obsidian's styling.
You can use the same pattern to select for other stylistic variants. Use the inspect element pane (Ctrl+Shift+I) to figure out what names the variants have and what their default fonts are. Note that MJXZERO should (seemingly) always be first on the list — it appears to adjust spacing only, rather than actual glyphs.
It might be possible to make \mathcal or \mathscr work for Greek using this method, though I have run into issues with kerning trying to implement this.
Conclusion
While this workaround is certainly a bit "hacky", the "solutions" I saw online are far worse, and didn't even work for Obsidian. It's possible this workaround is already known of, but I haven't seen it before, so I thought it good to share it in the hopes it might help others looking for a solution like I was a few years ago!