I have just started to use the Rule-based labeling feature in QGIS but am not able to move the labels - x and y coordinates are defined
If you define the X and Y coordinates for your label with the rule-based renderer then your label will be fixed at that point.
You could build an expression to alter the X and/or Y coordinate. For (a somewhat contrived) example:
case when type = city then $x + 500 else $x end
Otherwise, the EasyCustomLabelling plugin (https://plugins.qgis.org/plugins/EasyCustomLabeling/) as mentioned above will give you full control over label placement. Just be aware that the labels are saved to a memory layer and will not persist.