From the Dictionary entry for mouseStillDown:
Note: If there is no mouseStillDown handler in the target object's script, no mouseStillDown message is sent, even if there is a mouseStillDown handler in an object that's further along the message path.
There are only a handful of messages handled this way (idle and mouseWithin come to mind; there may be one or two others), and while it's quite a deviation from traditional xTalk it was done to encourage using newer messages that are usually more efficient.
With idle, for example, you can usually do what you need with much finer control and less CPU overhead by using timers instead.
With mouseStillDown, it requires the engine to poll the OS for the current mouse state, and this continuous polling is usually only meaningful when the mouse position changes - either the mouse is down within the target control, or it has moved off of it. While the script-driven polling seemed to work well enough under Mac Classic in HyperCard, modern systems provide a mouseMove message to note such changes, with the polling happening at the device/OS level where it's much more efficient.
So a quick solution would be to add a mouseStillDown handler in the target control, perhaps passing it if you want to handle that at the stack level.
But depending on why you're using mouseStillDown, it may be less load on the CPU to use mouseMove instead, taking action when the mouse enters or leaves the target control. It would require also writing mouseDown, mouseUp, and mouseRelease handlers to complete the tracking, but the small cost of a few extra minutes' scripting usually pays off with a much lower load on the CPU.
There's a discussion about this in the RQCC in response to a request I'd submitted to revise how mouseStillDown works in LiveCode - while it's been marked "Closed, not fixable", it may be helpful for understanding why it's implemented as it is:
http://quality.runrev.com/show_bug.cgi?id=1832