Recently I asked a question about a particular feature of sh/bash. I have another question now. But now I wonder, if I had a question about the Python or Ruby interpreters, I'd be asking on SO and not U&L. (At least, that's where I think they belong.) Yet the shells are something we closely associate with Unix. So should I ask questions about bash features here or on SO?
You should ask questions abouth sh/bash/zsh/(t)csh here. Although these shells have programming capabilities, their primary purpose is to provide an interactive command-line interface to the underlying system (of course not restricted to U&L).
Python and Ruby are primary programming languages. Most, but not all, implementations have interpreters, but due to the constraint of the language specifications make it kind of difficult to use in prolonged interactive mode (having to quote file names, even those without spaces, etc.). IMHO they are ideal for programmatically complex administrative purposes on Unix/Linux machines, but those are only a subset of the programming tasks you can use them for, therefore most of questions about Python & Ruby will end up on SO
In my opinion, the language of interest should not determine the location of the question, but rather the goal of the task.
If your question is fundamentally about programming (even if the language used is a shell), then it is better suited for SO. If however, the question is about how that program will interact with a *nix system (even if the program is in a "fully fledged" language), it seems like it would be fine here.
That is to say, if you want help with programming, SO is the place; if you want help with *nix, then here seems fine to me.
Edit: to clarify, the above answer implies that shell questions will typically be on-topic here more often than on SO (since a shell's main purpose is to sit between the system and the user as an interactive REPL and since shells are more numerous and prolific under *nix).
Not all you've named can be thrown into the same category. For a starter, Python is a language that can be easily executed on a Windows machine without much extra fuss.
On the other hand, to use
tcsh and others on Windows, you will either need a pre-compiled static binary (which is usually outdated by years since the number of people who maintain these is extraordinarily low) or you have to install a comprehensive third-party software called Cygwin, which will provide a UNIX layer that even allows you to use the GNU tools for building apps from source originally meant for U&L.
On the other hand, Python can be called "platform-independent" and thus the great part of Python problems had better be posted on SO or Programmers because on Windows, neither Python nor Ruby will ever be requiring any UNIX-ish component for their scripts resp. programs to run.
In contrary to that, bash & co. are by far not "platform-independent" but they are in fact dependent on a platform which must be emulated on Windows first.
Hence, it's two different pairs of shoes.