A down and dirty Applescript something like the below outline ought to be enough. Hopefully others will chime in. The logic can be condensed and polished but I like to start with everything broken down as much as possible.
1)First thing you need to do is create a list variable allFiles which will contain a reference to every file in the source folder. I would just use a choose folder to point to the source folder and tell the finder to add all files the list.
2)Create another list variable movedFiles to contain a reference to every file that meets your criterion of having a certain string (contained in a variable named searchString) as part of the file name.
3)Create a handler named fileMove to detect whether or not a file's name meets your criterion and if so, adds the file to the end of movedFiles. The handler will need to count the text items of an input string (in this case a filename) and compare count before and after it changes Applescript's default text item delimiters to searchString. If the count of text items is less after changing the text item delimiters to searchString, then the input fileName contains searchString and should be added to the end of list moveFiles. The handler should restore the text item delimiters to default immediately after this comparison.
4)Use a repeat loop to cycle through list variable allFiles based on its length and pass each item to handler fileMove.
5)Use a repeat loop to cycle through list variable movedFiles based on length and tell finder to move each one to destination folder.