Markdown on Observable accepts basic HTML so you could use <br>
elements to generate line breaks. To do that programmatically, try:
${recipes[0].ingredients.replace(/\n/g, '<br>\n')}
in your markdown cell. Even better, you might try
- ${recipes[0].ingredients.replace(/\n/g, '\n- ')}
to generate a bulleted list.