Martix of Counts of Regex Hits Over a List of Strings
An idiomatic approach would be to put MyText in a dataframe (if not already) and assign() the results of str.count().
I'd also suggest using an actual dict for the regex mapping. It's not strictly necessary, but the syntax is just cleaner given that this use case aligns with dict. (Here I created terms from MyDictionary just for continuity with the existing code.)
terms = dict(zip(MyDictionary.TermId, MyDictionary.SearchTerm))
df = pd.DataFrame({'MyText': MyText})

df = df.assign(**{key: df.MyText.str.count(val) for key, val in terms.items()})

#                          MyText  SK_0  SK_1  SK_2  SK_3  SK_4  SK_5
# 0   I saw xx.yy and also xx.yyy     2     0     0     0     0     0
# 1  FireFly* this is xx_yy there     0     0     0     1     0     0
# 2                       I xx$YY     0     0     0     0     0     0
# 3           I see x.yy now .NET     0     1     0     0     0     0
# 4           now xx.yyxx.yyxx.yy     3     0     0     0     0     0
```