Here is my snippet:
<snippet>
<!-- Note that there is no leading colon since only `for` part is substitued -->
<content><![CDATA[:for ${1:i} from=${2:0} to=$3 step=${4:1} do={
$5
};$0]]></content>
<tabTrigger>:for</tabTrigger>
<scope>source.mikrotik-script</scope>
<description>for</description>
</snippet>
When I enter :for in the right scope, no snippet is offered. However, if I press tab pretty fast multiple times, the snippet will be eventually inserted.
There are no problems when tabTrigger is just for, but it’s bad workaround.